0

非常に簡単なトピックを知っていますが、w3.comで提供されている構文は非常に複雑であることがわかりました。誰かがそれをデコードできますか?それを理解することは重要ですか?

ここでの構文

media_query_list
 : S* [media_query [ ',' S* media_query ]* ]?
 ;
media_query
 : [ONLY | NOT]? S* media_type S* [ AND S* expression ]*
 | expression [ AND S* expression ]*
 ;
media_type
 : IDENT
 ;
expression
 : '(' S* media_feature S* [ ':' S* expr ]? ')' S*
 ;
media_feature
 : IDENT
 ;

また、その下にいくつかのトークンを指定します。誰でもそれらをデコードしてください。

4

2 に答える 2

2

これは、構文の正式な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のブラウザによって認識される識別子になります。screenmax-width

于 2012-08-22T07:49:45.620 に答える
0

上記の構文に混乱する可能性がある場合は、ここで私の投稿をチェックして、私が理解しているメディアクエリ構文の技術的でない説明を確認してください。ここに意味のある再投稿するには長すぎます:

https://stackoverflow.com/a/23524569/1963978

于 2014-05-07T17:48:04.033 に答える