В CSS *
будет соответствовать любому элементу.
Часто *|*
используется вместо *
для соответствия всем элементам. Обычно это используется для целей тестирования.
В чем разница между *
и *|*
в CSS?
В CSS *
будет соответствовать любому элементу.
Часто *|*
используется вместо *
для соответствия всем элементам. Обычно это используется для целей тестирования.
В чем разница между *
и *|*
в CSS?
Универсальный селектор позволяет использовать дополнительный компонент пространства имен. Он используется следующим образом:
ns|*
все элементы в пространстве имен ns
*|*
все элементы
|*
все элементы без пространства имен
*
если не указано пространство имен по умолчанию, это эквивалентно * | *. В противном случае это эквивалентно ns | *, где ns - пространство имен по умолчанию.
Итак, no *
и *|*
не всегда одинаковы. Если предоставляется пространство имен по умолчанию, то *
выбирает только те элементы, которые являются частью этого пространства имен.
Вы можете визуально видеть различия, используя нижеприведенные два фрагмента. В первом определяется пространство имен по умолчанию и поэтому селектор *
применяет бежевый цветный фон только к элементу, который является частью этого namsepace, тогда как *|*
применяет границу ко всем элементам.
@namespace "http://www.w3.org/2000/svg";
* {
background: beige;
}
*|* {
border: 1px solid;
}
<a href="#">This is some link</a>
<svg xmlns="http://www.w3.org/2000/svg">
<a xlink:href="#">
<text x="20" y="20">This is some link</text>
</a>
</svg>
*|*
представляет собой селектор "всех элементов в любом пространстве имен". Согласно для W3C, селектор делится на:
нс | E
Где ns - namespace, а E - это элемент. По умолчанию объявленные пространства имен не объявляются. Поэтому, если пространство имен не указано явно, *|*
и *
будут выбирать одни и те же элементы.
В CSS * будет соответствовать любому элементу.
| используется для соответствия выбранным определенным элементам. Оба переключателя используются для целей тестирования