所以我一直在用first-child
尝试所有这些东西,所有东西都没有,但似乎都没有。如果我有这样的div设置:
<div class="content">
<div class="thing">
abd
</div>
<div class="thing">
</div>
<div class="thing">
123
</div>
<div class="thing">
<li class="list" goal="target">
1
</li>
</div>
<div class="thing">
<li class="list">
2
</li>
</div>
<div class="thing">
<li class="list">
3
</li>
</div>
<div class="thing">
<li class="list">
4
</li>
</div>
</div>
哪个css行只能定位li
.content
中的第一个div
元素(具有属性goal="target"
的<}} < /强>
现在这可能相当混乱,在第一个包含一个div
之前,可能会有0到10 li
s之间没有first-child
。
我几乎尝试了li
的任何内容,但它总是针对每一个div
,因为它们位于{{1}}中。
答案 0 :(得分:3)
在CSS中,格式为grandparent parent element child
... :nth-child
为您提供指定数字的元素,因此对于您的情况
.content .thing:nth-child(4) li {
/* CSS goes here */
}
在您的示例中,.content
是祖父母,.thing
(第四个)是父母,当然li
是元素。需要空格来区分CSS中的级别。
修改如果没有硬编码,就不可能选择第一个li
,无论父母是谁还是没有javascript。
这是一个jQuery修复:
$('.content').find("li").eq(0).css({ /* CSS goes here */});
这是一个直接的javascript修复:
var elems = document.getElementsByTagName('li')[0];
elems.style.property="value";
答案 1 :(得分:0)
首先确定,goal
是无效的属性,因此您不应该使用它。如果您需要自定义属性,则应使用data-attributes
为了按属性定位元素,您应该使用attribute selector,以下选择器可以使用。
li[goal="target"]{
/* Your styles go here.*/
}