HTML – 将CSS应用于除最后一个元素之外的所有元素?

前端之家收集整理的这篇文章主要介绍了HTML – 将CSS应用于除最后一个元素之外的所有元素?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下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.

猜你在找的HTML相关文章