如果我希望属性div
的所有data-color
等于red
,我可以
div[data-color='red']
但如果我想要任何元素data-color
等于red
怎么办?
我该怎么写?
答案 0 :(得分:5)
使用相同的attribute selector,但在连接之前没有任何元素
表示属性名称为attr且其值的元素 正是"价值"。
它将选择[data-color='red']
注意:即使使用''
(与""
不同),仍然无论如何都会选择""
。
[data-color='red'] {
background: red;
display: block
}

<div data-color='red'>red</div>
<p data-color='red'>red</p>
<article data-color='red'>red</article>
<section data-color='red'>red</section>
<h1 data-color='red'>red</h1>
<span data-color='red'>red</span>
<hr />
<div data-color="red">red</div>
<p data-color="red">red</p>
<article data-color="red">red</article>
<section data-color="red">red</section>
<h1 data-color="red">red</h1>
<span data-color="red">red</span>
&#13;
如果要定位特定元素,可以将该元素放在属性选择器之前:
div[data-color='red'] {
background: red;
}
p[data-color='red'] {
color: red
}
&#13;
<div data-color='red'>red</div>
<p data-color='red'>red</p>
&#13;
答案 1 :(得分:4)
你应该可以使用:
[data-color='red']
或者你可以这样写:
*[data-color='red']
你也可以用双引号来编写它,这也会选择相同的但是值得在整个CSS文件中保持相同的格式以保持标准。在这种情况下,我建议坚持使用单引号。
[data-color="red"]
这将选择data-color属性值等于red的任何HTML元素。
例如:
<div data-color='red'>Red</div>
<p data-color='red'>Red</p>
<span data-color='red'>Red</span>
工作示例:
[data-color='red'] {
background: red;
}
<div data-color='red'>Red</div>
<p data-color='red'>Red</p>
<span data-color='red'>Red</span>
<hr data-color='red'/>
<section data-color='red'>Red</section>
<article data-color='red'>Red</article>
<aside data-color='red'>Red</aside>