从最后一个类型中移除边距,但如果只是子节点则不移除

wil*_*ode 1 css css-selectors twitter-bootstrap

我想在Twitter Bootstrap中使用的每一行都有一个保证金,除非它是,:last-of-type/:last-child但如果是:only-child,我仍然想要保证金.有任何想法吗?

编辑

使用给出的答案,我做了以下SASS:

.container .row {
  margin-bottom: 15px;

  &:last-child:not(:only-child) {
    margin-bottom: 0;
  }
}
Run Code Online (Sandbox Code Playgroud)

Has*_*ami 5

首先要注意CSS伪类如:last-of-type/:last-child通过父子树来匹配所需的子元素,而不是通过类列表.因此,.row:last-of-type可能匹配也可能不匹配最后一行.

但是,如果.rows由特定的包装器嵌套.container,则以下内容应该有效:

这里的例子.

.container > :last-child:not(:only-child)
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="row"></div>
  <div class="row"></div>
  <div class="row"></div>
</div>
Run Code Online (Sandbox Code Playgroud)