これは、構文の正式なEBNF定義です。読みやすい例をお探しの場合は、標準の第2章をご覧ください。
要するに、S
スペース文字、IDENT
識別子(のようなfoobar2
)、*
0回以上の繰り返しを表します。それを詳しく見ていきましょう:
media_query_list
: S* [media_query [ ',' S* media_query ]* ]?
;
a media_query_list
(これが含まれる可能性のあるすべてのもの)が、コンマとオプションのスペースで区切られた@media ( here )
1つ以上で構成されていることを意味します。media_query
たとえば、これらは有効ですmedia_query_list
。
media_query
media_query, media_query, media_query,media_query
の定義media_query
は後で与えられます
media_query
: [ONLY | NOT]? S* media_type S* [ AND S* expression ]*
| expression [ AND S* expression ]*
|
つまり、2つの形式があります。いずれか
media_type
ONLY media_type
NOT media_type
(およびAND
)で結合されたオプションの式、または。で結合されたオプションの複数の他の式が後に続く式のみAND
。
式は次のように定義されます。
expression
: '(' S* media_feature S* [ ':' S* expr ]? ')' S*
つまり、常に括弧で囲まれ、、、media_feature
またはメディア機能の後に。が続くもので構成されますexpr
。たとえば、これらは有効な式です。
(foo)
(foo: 2px)
この定義では、media_type
任意media_feature
の識別子にすることができます。実際には、これらは、、などprint
のブラウザによって認識される識別子になります。screen
max-width