@charset
規則[12] escape (CSS) 参照。
@charset
の実装状況[53]
@charset
規則を書ける場所にはいくつかの制約があります。
また、利用者エージェントはスタイル・シートの先頭以外にある
@charset
規則を無視しなければならないことになっています。
ですが、 Firefox 2 も Opera 9 も、
少なくても CSSOM に @charset
に対応する CSSRule
を追加するかに関しては、
ほとんどの制約をチェックしていないようです。
U+0020
が2つ
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40charset%20%20%22US-ASCII%22%3B;h=;p=n;x=style-elementU+0020
の代わりに改行
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40charset%0A%22US-ASCII%22%3B;h=;p=n;x=style-element;
の前に U+0020
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40charset%20%22US-ASCII%22%20%3B;h=;p=n;x=style-element;
の前に注釈
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40charset%20%22US-ASCII%22%2F**%2F%3B;h=;p=n;x=style-element"
の代わりに '
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40charset%20'US-ASCII'%3B;h=;p=n;x=style-element@charset
の部分に escape
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40ch%5C61%20rset%20%22US-ASCII%22%3B;h=;p=n;x=style-element@charset
が大文字
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40CHARSET%20%22US-ASCII%22%3B;h=;p=n;x=style-element@charset
の前に空白
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%20%40charset%20%22US-ASCII%22%3B;h=;p=n;x=style-element@charset
の前に改行
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%0D%0A%40charset%20%22US-ASCII%22%2F**%2F%3B;h=;p=n;x=style-element@charset
の前に注釈
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%2F**%2F%40charset%20%22US-ASCII%22%2F**%2F%3B;h=;p=n;x=style-element@charset
の前に CDO
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%3C!--%40charset%20%22US-ASCII%22%3B%0A;h=%3Cp%3EXXXXXX;p=n;x=style-element@charset
の後に CDC
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=--%3E%40charset%20%22US-ASCII%22%3B;h=%3Cp%3EXXXXXX;p=n;x=style-element
(名無しさん)[56]
;
がない:
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40charset%20%22US-ASCII%22;h=%3Cp%3EXXXXXX;p=n;x=style-element
は Firefox 2 でも Opera でも無視して空のスタイル・シートと同じに扱うようです。
(名無しさん)
[57]
U+0020
なし:
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40charset%22US-ASCII%22%3B;h=%3Cp%3EXXXXXX;p=n;x=style-element
でも Firefox 2、Opera 9 とも CSSOM
に現れます。
(名無しさん)
Firefox 2、Opera 9 とも CSSOM 上に
@charset
が (Opera 9 では
@a
も) 現れます。
(名無しさん)
[59]
以下のように @charset
を無視するべき場合に、
Firefox 2 は CSSOM 上に CSSCharsetRule
を追加しませんが、 Opera 9 はします:
@media
がある
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40media%20all%7B%7D%40charset%20%22US-ASCII%22%3B%0D%0A;h=%3Cp%3EXXXXXX;p=n;x=style-element@charset
がある
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40charset%20%22US-ASCII%22%3B%40charset%20%22US-ASCII%22%3B;h=%3Cp%3EXXXXXX;p=n;x=style-element@namespace
がある
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40namespace%20''%3B%40charset%20%22US-ASCII%22%3B;h=%3Cp%3EXXXXXX;p=n;x=style-element@import
がある
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40import%20'style'%3B%40charset%20%22US-ASCII%22%3B;h=%3Cp%3EXXXXXX;p=n;x=style-element(名無しさん)
(CSSOM 的に) Firefox は全部無視、 Opera 9 は1つ目だけ無視。
(名無しさん)
[61] https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40charset%20%22%0D%0A%40charset%20%22US-ASCII%22%3B;h=%3Cp%3EXXXXXX;p=n;x=style-element
(CSSOM 的に) Firefox 2 も Opera 9 も全部無視。 (名無しさん)
[62] https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40charset%20%22%0A%3B%40charset%20%22US-ASCII%22%3B;h=%3Cp%3EXXXXXX;p=n;x=style-element
(CSSOM 的に) Firefox 2 も Opera 9 も、1つ目だけ無視。 (名無しさん)
Firefox 2、Opera 9 のどちらも、全部無視。 (名無しさん)
[64]
>>54
@charset
の部分に escape
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40ch%5C61%20rset%20%22US-ASCII%22%3B;h=;p=n;x=style-element
は、 Opera 9 では UNKNOWN_RULE
扱いでした。
(名無しさん)
[65]
>>59 壊れた @namespace
が前にある
https://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40namespace%3B%40charset%20%22US-ASCII%22%3B;h=%3Cp%3EXXXXXX;p=n;x=style-element
[6] >>4 最初の規則といいますが、 Chrome でも Firefox でも、空白や注釈は数に入っていません。
Firefox では非妥当な規則や CDO
や CDC
があっても構いません。 Chrome ではこれらがあると非妥当とみなされます。
[7] Re: [cssom] Rationale for including (or not) CSSCharsetRule ( (Tab Atkins Jr. 著, 版)) http://lists.w3.org/Archives/Public/www-style/2013May/0758.html
[8] Chromium Dashboard ( ( 版)) http://www.chromestatus.com/metrics/feature/timeline/popularity/426
[9] IRC logs: freenode / #whatwg / 20140901 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20140901#l-253
[10] csswg: changeset 14817:86a5f6f5df18 ( ( 版)) https://dvcs.w3.org/hg/csswg/rev/86a5f6f5df18de3c6b7a34d4bd91862298bfb0dd
[11] CSS 2.1 @charset tests invalidated by Level 3 ( (Henri Sivonen 著, 版)) http://lists.w3.org/Archives/Public/public-css-testsuite/2012Dec/0000.html