В CSS *
будет соответствовать любой элемент.
Часто *|*
используется вместо*
соответствия всем элементам. Это обычно используется в целях тестирования.
В чем разница между *
и *|*
в CSS?
css
css-selectors
namespaces
RockPaperLizard
источник
источник
*|*
значит в CSS?Ответы:
Согласно спецификации селектора W3C :
Так что нет
*
и*|*
не всегда одно и то же. Если предусмотрено пространство имен по умолчанию, тогда*
выбираются только элементы, которые являются частью этого пространства имен.Вы можете визуально увидеть различия, используя два приведенных ниже фрагмента. В первом определено пространство имен по умолчанию, и поэтому
*
селектор применяет бежевый цветной фон только к элементу, который является частью этого пространства имен, тогда как*|*
применяет границу ко всем элементам.В ниже фрагмент пространства имен по умолчанию не определено и так как
*
и*|*
применяется ко всем элементам и поэтому все они получают как бежевый фон и черную рамку. Другими словами, они работают так же, когда не указано пространство имен по умолчанию.Как указывает BoltClock в комментариях ( 1 , 2 ), изначально пространства имен применялись только к языкам на основе XML, таким как XHTML, SVG и т. Д., Но согласно последним спецификациям все элементы HTML (то есть элементы в пространстве имен HTML) располагаются в пространстве имен
http://www.w3.org/1999/xhtml
. Firefox следует этому поведению, и он одинаков для всех пользовательских агентов HTML5. Вы можете найти больше информации в этом ответе .источник
http://www.w3.org/1999/xhtml
*|*
представляет селектор «всех элементов в любом пространстве имен». Согласно W3C , селектор делится на:нс | E
Где ns - пространство имен, а E - элемент. По умолчанию пространства имен не объявляются. Так что, если пространство имен не объявлено явно,
*|*
и*
выберет те же элементы.источник
В CSS * будет соответствовать любому элементу.
| используется для соответствия выбранным конкретным элементам . Оба селектора используются для нашего тестирования
источник