我有一个HTML结构:
<div class="home-view">
<div class="view-header">Header</div>
<div class="view-content">Content</div>
</div>
我想设置home-view
的第一项。在这种情况下,它是view-header
,但有时没有标题,而view-content
将是home-view
中的第一项。
home-view
中的第一项应该有一些样式。
我一直在尝试.home-view:first-child
,但没有运气,因为它的孩子有不同的类名(我认为)。有什么建议吗?
答案 0 :(得分:4)
.home-view > *:first-child { background-color:red; }
...将选择任何类型的第一个子元素作为第一个子元素。
答案 1 :(得分:2)
由于这两个元素都是div
,因此您可以在.home-view
div
.home-view div:first-child{
background: red;
}
答案 2 :(得分:1)
.home-view > div:first-of-type{ background-color:red; }
:first-of-type选择器匹配其父元素的特定类型的第一个子元素。
答案 3 :(得分:0)
您回复了以前的答案,您只希望设置直接子元素的样式,而不是它们下面的子元素。
所以我会调整这些答案并给你一个满足这个要求的答案:
.home-view>div:first-child{
background: red;
}
这里的区别在于>
和.home-view
之间的div
选择器,而不是空格。这迫使它只选择.home-view
的直接子项,而不是树下面的div,而它们之间的空格会告诉它在树下选择任何匹配的子元素。
希望有所帮助。
答案 4 :(得分:-3)
试试这个:
$('.home-view').children().eq(0);