*和* | *在CSS中有什么区别?
在CSS中, *
将匹配任何元素。
通常,使用*|*
而不是*
来匹配所有元素。 这通常用于testing目的。
*
和*|*
在CSS中有什么区别?
根据W3Cselect规范 :
通用select器允许一个可选的命名空间组件。 它使用如下:
ns|*
ns中的所有元素
*|*
所有元素
|*
所有没有命名空间的元素
*
如果没有指定默认命名空间,则这等同于* | *。 否则,它相当于ns | *,其中ns是默认名称空间。
所以,没有*
和*|*
并不总是相同的。 如果提供了默认名称空间,则*
只select属于该名称空间的元素。
您可以使用以下两个片段直观地查看差异。 首先,定义了一个默认的名称空间,所以*
select器仅将米色背景应用于该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>
*|*
表示“任何名称空间中的所有元素”的select器。 根据W3C ,select器分为:
NS |企业
其中ns是命名空间 ,E是元素。 默认情况下,不声明名称空间。 因此,除非明确声明名称空间,否则*|*
和*
将select相同的元素。
在CSS中, *将匹配任何元素。
| 用于匹配select的特定元素 。 两者都是用于我们testing目的的select器