如何在MDN上阅读CSS语法

问题描述 投票:0回答:1
selectors-list ::=
    selector[:pseudo-class] [::pseudo-element]
    [, selectors-list]

properties-list ::= 
    [property : value] [; properties-list]

我正在尝试熟悉CSS,并且很高兴了解阅读这些规则(从https://developer.mozilla.org/en-US/docs/Web/CSS/Reference开始)。

css syntax css-selectors
1个回答
0
投票

此MDN页面似乎使用伪BNF表示法来描述CSS语法。使用的表示法非常令人困惑,因为[]::: ;,在CSS中都具有某些含义,但是它们使用[]表示可选部分,并使用::=表示语法规则。

我可以给你一个粗略的英文翻译,意思是:

style-rule ::=
    selectors-list {
      properties-list
    }

样式规则是由一个选择器列表,然后是{,然后是一个属性列表,然后是}

selectors-list ::=
    selector[:pseudo-class] [::pseudo-element]
    [, selectors-list]

[选择器列表由一个选择器组成,可选地后跟:和一个伪类,可选地后跟::和一个伪元素,可选地后跟,和另一个选择器列表。

此定义不仅不正确(您可能连续使用多个伪类),而且名称令人困惑。如果伪类和伪元素与选择器分开,为什么将这三个列表都称为选择器列表?

放在一边...

properties-list ::= 
    [property : value] [; properties-list]

一个属性列表可以完全为空,或者可以包含一个属性,后跟:,后跟一个值,还可以包含;和另一个属性列表。

然后,他们甚至不使用伪BNF来定义什么是选择器,伪类,伪元素,属性或值。整个表示方式比有用的方式更令人困惑。该MDN页面可能应该被重写。

© www.soinside.com 2019 - 2024. All rights reserved.