CSS brainteaser:如何在列表中更改最后一个类结果

时间:2013-07-21 10:40:12

标签: css css3

我在div中显示搜索结果:

<div id="results">
  <div class="list-item">[Text]</div>
  <div class="list-item">[Text]</div>
  <div class="list-item">[Text]</div>
  <div class="list-item">[Text]</div>
  <div class="list-item">[Text]</div>
  <div class="list-item">[Text]</div>
</div>

列表项的数量是可变的。我希望在所有列表项类上都有border-bottom: 1px solid #000;,除了最后的结果。 CSS中有没有办法做到这一点,还是需要使用JS?

3 个答案:

答案 0 :(得分:9)

使用:not:last-child

.list-item:not(:last-child) {
  border-bottom:1px solid #000;
}

它有效且优雅:http://jsfiddle.net/3Znbu/

答案 1 :(得分:6)

使用:last-child选择器。

.list-item {
  border-bottom:1px solid #000;
}

.list-item:last-child {
  border-bottom: 0;
}

正如Mooseman指出的那样,它不适用于IE8或更低版本,所以如果你需要IE8支持,我建议使用jQuery解决方案,或者使用支持IE7 +的:first-child选择器。

<强>的jQuery

$('.list-item:not(:last-child)').css('border-bottom','1px solid #000');

<强>:第一子

.list-item {
  border-top:1px solid #000;
}

.list-item:first-child {
  border-top: 0;
}

答案 2 :(得分:1)

#results .list-item:last-child {
   border-bottom: none;
}