Эта страница MDN, кажется, использует псевдо-BNF нотацию для описания синтаксиса CSS. Используемые обозначения очень запутанные, потому что []
::
:
;
и ,
все означают что-то в CSS, но они используют []
для представления необязательных частей и ::=
для определения правила грамматики.
Я могу дать вам грубый перевод на английский язык sh того, что они имели в виду:
style-rule ::=
selectors-list {
properties-list
}
Правило стиля состоит из списка селекторов, за которым следует {
, за которым следует список свойств, за которым следует }
.
selectors-list ::=
selector[:pseudo-class] [::pseudo-element]
[, selectors-list]
Список селекторов состоит из селектора, за которым необязательно следует :
и псевдокласс, за которым необязательно следует ::
и псевдо- элемент, за которым может следовать ,
и другой список селекторов.
Это определение не только неверно (вы можете использовать несколько псевдоклассов в строке), но и имеет запутанное имя. Если псевдокласс и псевдоэлемент являются чем-то отдельным от селектора, почему вы бы назвали список всех трех списком селекторов?
Оставляя это в стороне ...
properties-list ::=
[property : value] [; properties-list]
Список свойств может быть полностью пустым или содержать свойство, за которым следует :
, за которым следует значение, за которым необязательно следует ;
и другой список свойств.
И затем они не t даже использовать их псевдо-BNF для определения того, что является селектором, псевдоклассом, псевдоэлементом, свойством или значением. Вся эта запись гораздо более запутанная, чем полезная. Эта страница MDN, вероятно, должна быть переписана.