如果一个类在具有特定ID的另一个元素之后,则具有特定的CSS

时间:2014-07-30 13:11:50

标签: css css-selectors

我有这种情况:

<div id="parent">
   <div id="a"></div>
   <li class="b"></li>
</div>

在我的情况下,我想添加margin-top:5px;只有在id a之后才能上课。请注意,这些不是子项,而是在同一元素中。

我想要一种使用纯CSS或CSS3的方法,而不需要使用LESS或SASS。我知道这也许可以使用JavaScript或jQuery,只是想知道它是否可以在CSS中完成以及如何完成。

2 个答案:

答案 0 :(得分:12)

您可以使用相邻的兄弟选择器。下面将选择所有带有类.b的元素,其后面的元素为id #a:

#a + .b {
  margin-top: 5px;
}

相邻的兄弟选择器是CSS 2.1规范的一部分,在IE7 +

中受支持

在此处阅读有关CSS子级和兄弟选择器的更多信息:http://css-tricks.com/child-and-sibling-selectors/

演示http://jsfiddle.net/76qJm/3/

答案 1 :(得分:2)

如果要使用类b定位许多元素,则需要使用~选择器。选择器+将仅查找下一个立即元素。像下面一样更新你的CSS。

#a ~ .b {
 margin-top: 5px;
}