【发布时间】:2017-03-18 06:55:24
【问题描述】:
我有以下 HTML 结构,我尝试仅使用 CSS 选择器设置样式:
<footer>
<div class="row">
<div class="col-md-3"></div>
<nav class="col-md-9"></nav>
</div>
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-9"></div>
</div>
</footer>
想象一下,所有的列都堆叠在一个小视口中。 我希望除最后一列之外的所有列都应用底部边距来分隔列。
我尝试了一些不同的方法,但无济于事:
footer [class^="col-"]:not(:last-child) {
margin-bottom: 3rem;
}
footer [class^="col-"]:not(:last-of-type) {
margin-bottom: 3rem;
}
首先,为什么这些会失败?其次,这里的正确方法是什么?
【问题讨论】:
-
:not无法处理复杂的选择器。 stackoverflow.com/a/26997609/2813224 -
@zer00ne:这里没有使用任何复杂的选择器。每个 :not() 这里只有一个伪类。
-
“首先,为什么这些会失败?”他们确实工作——他们只是匹配了太多的元素。每个最后一列都是其父行的最后一个子行。这就是原因。
标签: css css-selectors