我有一个树形系统。我想做的是给所有的父节点留出一个空白,除了第一个。这是我的HTML:
<div id="someDivID">
<div class="theBody">
<div class="someContainer">
<div id="someItem" class="someItemClass">
Test
</div>
</div>
<div class="someContainer">
<div id="someItem2" class="someItemClass">
Test2
</div>
</div>
</div>
</div>
我的CSS:
#someDivID
{
width: 400px;
}
#someItem,
#someItem2
{
border: 1px solid #000;
padding: 1px;
margin-bottom: 2px;
clear: both;
overflow: auto;
}
.someItemClass
{
background-color: #0077FF;
}
.someItemClass:not(:first-of-type)
{
margin-top: 50px;
}
现在,我的.someContainer
有了背景色,但第二个.someContainer
没有上边距。如果我删除:first-of-type
,它就可以工作。:first-child
也不工作。
下面是我的jsfiddles:first-of-type
:http://jsfiddle.net/JoshB1997/zsu2o3cg/first-child
:http://jsfiddle.net/JoshB1997/zsu2o3cg/1/
2条答案
按热度按时间jv4diomz1#
因为他们不是兄弟姐妹。
如果将:not选择器更改为父div,它将起作用。
请注意,这根本行不通:
qmelpv7a2#
正如我上面的Edd所建议的,它们不是兄弟姐妹-所以你需要将选择器更改为父(
.someContainer
)。但我也建议另一种方法,“积极”方法-设置选择器的第一个孩子没有想要的属性,而所有其他孩子都有它
附加Pen