Правильные термины и слова для разделов и частей селекторов
каков правильный термин для разделов селекторов CSS, которые являются разделены запятыми?
body.foo .login , body.bar .login { ... }
/* |
Part 1 | Part 2 */
в этих разделах, каков термин для частей разделены комбинаторы (пробелы, +
, >
и т. д.)?
body.foo .login , ... { ... }
/* |
Part 1 | Part 2 */
3 ответов
каков правильный термин для разделов селекторов CSS, которые являются разделены запятыми?
в настоящее время они просто называются селекторы, что мне действительно не нравится. в будущем, они будут лучше определены как сложные селекторы.
весь разделенный запятыми список известен как список селектора или группы.
в этих разделах, каков термин для частей разделены комбинаторы (пробелы,
+
,>
и т. д.)?
в настоящее время они называются последовательности простых селекторов. В будущем, они будут известны как составные селекторы.
Итак, список селекторов состоит из одного или нескольких сложных селекторов, разделенных запятыми, а каждый сложный селектор состоит из двух основных частей: составных селекторов, и комбинаторы. Он может также выборочно содержать псевдо-элементы.
и так как я здесь, вот остальные определения...
селекторы уровня 3 подводит итог следующим образом:
-
A простой селектор является одним из основных компонентов селектора. Это одно из следующих:
- универсальный селектор (
*
),дополнительно с пространство имен - выбор типа (
a
,div
,span
,ul
,li
, etc),дополнительно с пространством имен - селектор атрибута (
[att]
,[att=val]
, etc),дополнительно с пространством имен - селектор класса (
.class
) - ID-селектор (
#id
) - псевдо-класса (
:pseudo-class
)
- универсальный селектор (
-
A комбинатора другой фундаментальная составляющая селекторов. Это символ или маркер, который разделяет два составных селектора, устанавливая на своем месте связь между двумя элементами, представленными двумя составными селекторами. В настоящее время используются четыре комбинатора:
-
потомок комбинатора:
article p
-
ребенок комбинатора:
/* * The extra spaces in between are whitespace, * and are therefore insignificant. */ ul > li
-
соседний брат комбинатор:
header + section
-
общий комбинатор братьев и сестер:
h2 ~ p
больше комбинаторов могут быть введены в более поздних спецификациях.
-
-
A простая последовательность селектора представляет собой цепочку простых селекторов, не разделенных комбинатором:
a:not([rel="external"]):hover
-
A селектор (я ненавижу это определение) - это полная строка, состоящая из селекторных последовательностей связанные комбинаторами:
nav[role="main"] > ul:first-child > li
селекторы уровня 4 переопределяет ряд терминов и в результате делает вещи менее двусмысленными и менее неуклюжими:
последовательность простых селекторов, теперь известный как соединение селектора.
имя сложный селектор теперь дано определение CSS3 "селектора" (то есть строка соединения селекторы и комбинаторы).
-
группа из одного или нескольких составных/сложных селекторов теперь официально известна как список селектора. Сам термин в настоящее время не делает различия между ними, и я не вижу, чтобы это изменилось в ближайшее время.
однако, если Вы читаете грамматику для определенных функциональных псевдоклассов, она будет описывать, какие списки селекторов они ищут. Например, enhanced
:not()
псевдо-класс принимает список составных селекторов, в то время как исходная версия допускала только один простой селектор в качестве аргумента. -
термин селектор был обобщен, поэтому теперь он может относиться к следующие для простоты и краткости:
- простой селектор
- соединение селектора
- комплекс селектор
- список селекторов (например, компонент "селектор" правила стиля)
некоторые личные заметки:
термин "селектор ключей" придуман поставщиками браузеров для использования с реализациями селекторов и не является официальным термином. Однако он часто используется для обозначения "субъекта селектора", поскольку реализации используют субъект селектора в качестве ключа для определения спички.
термин "псевдо-селектор" придуман веб-авторами для смешивания псевдо-классов и псевдо-элементов и не является официальным или действительно значимым термином. Хотя вы можете найти его в некоторых ранних проектах W3C CSS2/3, это, вероятно, было ошибкой. пожалуйста, не используйте этот термин, поскольку это напрасно создает путаницу, пытаясь сгруппировать две совершенно разные концепции в один зонтик срок.
псевдо-элементы (
::pseudo-element
) не являются простыми селекторами и поэтому не могут отображаться в местах, где могут быть сопоставлены только фактические элементы. Однако они по-прежнему считаются селекторами для целей синтаксического анализа CSS.типичные правила стиля (или наборы правил) в CSS состоят из селектор и декларации блок.
префиксы пространства имен не являются селекторами в их собственные права, но они могут применяться к селекторам типов, универсальным селекторам и селекторам атрибутов для сопоставления компонентов в документе, которые находятся (или не находятся) в пространстве имен.
-
на специфика селектора в настоящее время относится только к одному сложному селектору. При сопоставлении правил для расчета специфичности будет учитываться любой из сложных селекторов в списке, соответствующих данному элементу. Если несколько сложных селекторов соответствуют элемент, наиболее конкретный будет использоваться для расчетов.
специфичность будет более сложной проблемой с некоторыми селекторами уровня 4, в частности
:nth-match()
и:nth-last-match()
. Поскольку они все еще специфицируются, еще не решено, как все это будет реализовано.
на спецификация предлагает терминологию для этого:
селектор представляет собой цепочку из одной или нескольких последовательностей простых селекторов, разделенных комбинаторами. Один псевдо-элемент может быть добавлен к последней последовательности простых селекторов в селекторе.
последовательность простых селекторов-это цепочка простых селекторов, не разделенных комбинатором. Он всегда начинается с селектора типов или универсального селектора. Никакой другой тип селектор или универсальный селектор разрешен в последовательности.
простой селектор-это селектор типов, универсальный селектор, селектор атрибутов, селектор классов, селектор идентификаторов или псевдокласс.
комбинаторы: пробелы," больше, чем знак "(U+003E,>)," знак плюс "(U+002B,+) и" Тильда " (U+007E,~). Белое пространство может появиться между комбинатором и простыми селекторами. Только символы " пробел "(U + 0020), "вкладка" (U + 0009), "подача строки" (U+000A), " каретка возврат " (U+000D) и "подача формы" (U+000C) могут происходить в пробелах. Другие пространственные символы, такие как "em-space" (U+2003) и "ideographic space" (U+3000), никогда не являются частью пробела.
есть некоторые небольшие терминологические различия между CSS 2 и 3
список основных определений (селектор, группу селекторов, простой селектор и т. д.) был изменен; в частности, то, что в CSS2 называлось простым селектором, теперь называется последовательность простых селекторов, и термин "простой селектор" теперь используется для компонентов этой последовательности
части, разделенные запятыми, называются селекторами.
в селекторе у нас есть simple_selectors и combinators.
посмотреть грамматика.