我有
的ULborder: 1px solid grey;
它包含几个LI
border-bottom: 1px dotted grey;
以视觉方式保持物品分开。但现在最后一个LI有虚线边框和UL固体边框!这看起来很烦人。我怎么能避免这种情况?有没有办法在LI之间放置边界而不是在它们之后?
答案 0 :(得分:20)
CSS3选择器可以定位:first-child
或:last-child
,如下所示:
ul {
border: 1px solid grey;
}
li {
border-bottom: 1px dotted grey;
}
li:last-child {
border:none;
}
答案 1 :(得分:11)
一个流畅的解决方案是使用plus (+) selector来设置列表样式:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
您只需添加the following css:
li + li {
border-top: 1px dotted grey;
}
您可以避免添加额外的选择器,并且能够使代码更加干净。虽然根据您的需要,您可能需要先检查browser compatibilty。
答案 2 :(得分:2)
使用类或CSS3选择器:last-child
删除最后<li>
边框底部
ul li:last-child { border-bottom:0; }
或
<ul>
<li>1</li>
<li>2</li>
<li class="last">3</li>
</ul>
ul li.last { border-bottom:0; }
答案 3 :(得分:1)
只需在指定不显示边框的最后一个li
添加另一个类。