我有以下html:
<ul class="menu"> <li><a>list item 1</a></li> <li><a>list item 2</a></li> ... <li><a>list item 5</a></li> </ul>
我想对所有< a>应用边框.元素除了最后一个.
我一直在尝试这个:
.menu a { border-right: 1px dotted #ccc; } .menu a:last-of-type { border-right: none; }
但我最终没有任何元素的边框,我猜是因为< a>在每种情况下都是最后一种类型.
我怎样才能做到这一点?如果可能的话,我宁愿只使用CSS,如果可能的话,我会喜欢IE9的兼容性.
解决方法
更改:
.menu a:last-of-type { border-right: none; }
至:
.menu li:last-of-type a { border-right: none; }
.menu a { border-right: 1px dotted #ccc; } .menu li:last-of-type a { border-right: none; }
<ul class="menu"> <li><a>list item 1</a></li> <li><a>list item 2</a></li> <li><a>list item 3</a></li> <li><a>list item 4</a></li> <li><a>list item 5</a></li> </ul>
正如你猜测的那样,你使用的规则是针对每一个规则,因为它是每个li中的最后一个孩子.只需将:last-of-type移动到li.