@media
(CSS)[4]
カスタムタグ (IE)
はなぜか
@media all
を使うよう要求していました。
おそらく構文解析の互換性の問題で新規実装した
@media
内と元々のそれ以外で挙動をかえていたのでしょう。
[36]
@media screen, 3d {}
(CSS 2.1 に出てくる例)
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=%40media%20screen%2C%203D%20%7B%0A%20%20P%20%7B%20color%3A%20green%3B%20%7D%0A%7D;h=%3Cp%3EPASS%20if%20green.%3C%2Fp%3E;p=n;x=style-element;i=html-div
3d
は無視し、
screen
には適用されるのが正しい動作です。
WinIE 6 はそうしますが、
Opera 9 と Firefox 2 は@規則全体を無視します。
[32]
WinIE 6 の @media
の構文解析や直列化については
cssText
かどこかに書いてあります。
(名無しさん)
[33]
Firefox 2 では、媒体照会の部分は読点 (と前後に零文字以上の空白) 区切りの
IDENT
ならなんでもいい
(CSS 2.1 で定義された媒体型でなくてもいい) ようです。
COMMA
は不可。CSSOM の mediaText
には、そのまま現れます。ただし、区切りは COMMA
] + SPACE
に正規化、
小文字に正規化されます。順序や重複も保存されます。
(名無しさん)
[34]
Opera 9 では、
CSS 2.1 で定義された媒体型でないものが含まれていると、
unknown
に置き換わって CSSOM
に現れます。区切りの正規化や小文字への正規化も行われます。
(名無しさん)
[37]
>>34 ただし、 and
や not
が最初に来ると、@規則全体を無視します。
(名無しさん)
[38]
>>34 Opera 9 が対応しているのは、
all
, handheld
,
tv
, speech
,
screen
, print
と
aural
(構文解析時に
speech
に置き換えられる) です。
[39]
>>38 あと projection
[1] 2009年頃の CSS3 を見ると代替スタイル・シートの名前を指定することができたようです。
[40] CSS Conditional Rules Module Level 3 ( ( 版)) http://dev.w3.org/csswg/css-conditional/#at-media
[2] [cssom][css-conditional] Merge IDL definitions for CSSMediaRule (#1209) (zcorpan著, ) https://github.com/w3c/csswg-drafts/commit/13ca505c2bdff691aad03a1364e71df820a5a6e1
[3] [cssom] Specify serialization of CSSMediaRule and CSSFontFaceRule (canaltinova著, ) https://github.com/w3c/csswg-drafts/commit/6cbb98d6931914580e323cfcb8946ca551c0b2c6
3d
がIDENT
でなくDIMENSION
のためだと思われます。