:具有不同类名的第一个孩子

时间:2013-07-18 08:34:55

标签: css less css-selectors

我有一个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,但没有运气,因为它的孩子有不同的类名(我认为)。有什么建议吗?

5 个答案:

答案 0 :(得分:4)

.home-view > *:first-child { background-color:red; }

...将选择任何类型的第一个子元素作为第一个子元素。

答案 1 :(得分:2)

由于这两个元素都是div,因此您可以在.home-view

中指定第一个div
.home-view div:first-child{
    background: red;
}

工作示例: http://jsfiddle.net/7cNZS/

答案 2 :(得分:1)

.home-view > div:first-of-type{ background-color:red; }

:first-of-type选择器匹配其父元素的特定类型的第一个子元素。

More....

答案 3 :(得分:0)

您回复了以前的答案,您只希望设置直接子元素的样式,而不是它们下面的子元素。

所以我会调整这些答案并给你一个满足这个要求的答案:

.home-view>div:first-child{
    background: red;
}

这里的区别在于>.home-view之间的div选择器,而不是空格。这迫使它只选择.home-view的直接子项,而不是树下面的div,而它们之间的空格会告诉它在树下选择任何匹配的子元素。

希望有所帮助。

答案 4 :(得分:-3)

试试这个:

$('.home-view').children().eq(0);