Ответ 1
Универсальный селектор позволяет использовать дополнительный компонент пространства имен. Он используется следующим образом:
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>