我有一些代码,看起来像这个CSS(| =)是什么意思?这叫什么?
[class|="e"]
{
margin: 0 0 0 0;
}
是什么的| =是什么意思?我应该用Google搜索什么?
我试过搜索stackoverflow(可以找到标点符号)和谷歌,但很难搜索没有名称。
我有一些代码,看起来像这个CSS(| =)是什么意思?这叫什么?
[class|="e"]
{
margin: 0 0 0 0;
}
是什么的| =是什么意思?我应该用Google搜索什么?
我试过搜索stackoverflow(可以找到标点符号)和谷歌,但很难搜索没有名称。
即已知为attribute selector。具体来说,|=
attribute selector会查找具有给定属性的元素,其值与给定值完全匹配,或者以给定值开头,后面紧跟-
(前缀,如果您愿意)。
你选择器相匹配用class
属性元素具有值:
e
,或e-
。这相当于以下两个属性选择的组合结果:
[class="e"], [class^="e-"]
注意|=
通常与语言中使用的属性,诸如hreflang
和lang
,尽管在后者,:lang()
的情况下通常是首选 - this answer解释了两者之间的差异。与class
属性使用时
您可以使用|=
与任何其他属性,但要小心,因为它忽略了多个空间分隔的类名 - 它始终着眼于整个属性值或的最开始价值,而不是每个单独的课程名称。
作为一个例子,下面的内容将您的选择,因为e
和e-c
出现在属性值的开始匹配:
<div class="e"></div>
<div class="e-c"></div>
<div class="e-c f"></div>
然而,无论这些元素将在您的选择匹配,因为值始于f
:
<div class="f e"></div>
<div class="f e-c"></div>
如果你需要匹配的元素类前缀都可能有多个班,我推荐使用一组不同的属性选择的š代替:
[class^="e-"], [class*=" e-"]
这将匹配上面列出的所有.e-c
元件。有关说明,请参阅this other answer。
[class|="e"]
{
margin: 0 0 0 0;
}
选择所有其class属性包含值完全为“e”或以“e-”开头的元素。
而且一些例子:
<div class="e"></div>
MATCH
<div class="ea"></div>
不匹配
<div class="e-a"></div>
MATCH
<div class="ae-"></div>
不匹配
属性在Dash Separated List –
@Rohit Batham:这是一个糟糕的描述,因为它暗示着“e”可能发生在任何匹配的地方 - 在这种情况下,“e-”必须出现在属性值的开头。 – BoltClock
您正在查找的名称是“[属性选择器](http://www.w3.org/TR/css3-selectors/#attribute-selectors)” –
该字符是一个“管道”。 – pstenstrm