我试图定位页面的第一个h3但是击中了所有的h3s
我在下面尝试过,并使用“>”但是>只有当它直接在体内而不是嵌套时才有效。
body h3:first-of-type{ /*code*/ }
有什么想法吗?
我不想在任何地方添加ID。
答案 0 :(得分:5)
First-of-type
将在其父级中定位该类型的第一个元素,而不是在您指定的祖先中。所以,如果您的HTML就像
<body>
<div>
<h3>first</h3>
</div>
<div>
<h3>second</h3>
</div>
</body>
然后会定位两个h3
元素,因为每个元素都是其父级中的第一个h3
。
鉴于你只想要定位一个元素,看起来添加id似乎是明智的方法。
(也可以使用jQuery(它有一个:first
选择器)来做这个,虽然这当然会依赖于javascript被启用,如果你不需要其它的话可能有点过头了的原因。)
答案 1 :(得分:1)
:first-of-type伪类表示一个元素,它是其父元素子元素列表中第一个类型的兄弟。
http://www.w3.org/TR/css3-selectors/#first-of-type-pseudo
所以这不会起作用,你应该给它一个id并用它来选择它。
答案 2 :(得分:1)
body > div:first-child h3:first-of-type {
color : red;
}
答案 3 :(得分:0)
first-of-type
只能从其父:
h3:first-of-type
{
color:green;
}
HTML
<h3>first</h3>
<h3>second</h3>
http://jsfiddle.net/zQmR6/确实有效!
如果您有不同的div
,则h3
内的每个div
被认为是第一个。
<div>
<h3>first</h3>
</div>
<div>
<h3>second</h3>
</div>
答案 4 :(得分:0)
答案 5 :(得分:0)
答案 6 :(得分:0)
你为什么不试试:
body h3:first-child
first-child伪元素描述元素本身,而不是元素的子元素
空间指定您正在寻找身体的后代。由于您不是在寻找直接后代,因此不应使用>
。