如何选择除第一个和最后一个使用CSS之外的所有列表项?

时间:2012-03-21 10:57:31

标签: html css pseudo-element css-selectors

我有一个HTML列表,我需要从中选择除第一个和最后一个元素之外的所有元素。

现在我正在尝试这样:

.inputList li:not(:first-child):not(:last-child) {
    // stuff
    }

不是真的有用......有没有更好的方法,这也适用于IE?

感谢您的投入!

4 个答案:

答案 0 :(得分:7)

您可以为所有子元素指定声明,然后为第一个和最后一个子节点覆盖。例如:

.example > LI {background: green; }

.example > LI:first-child,
.example > LI:last-child {background: none; }

答案 1 :(得分:5)

像这样写:

.inputList li:first-child, .inputList li:last-child{
  color:red;
}

注意:first-child一直工作到IE7&以上。 :last-child工作到IE9&上方。

答案 2 :(得分:3)

第一个元素可以忽略为

li + li{border-left: 1px solid #000;}

答案 3 :(得分:1)

我刚刚找到了另一种方法,因此仅出于文档目的将其发布:

.inputList li + li:not(:last-child) {
    background-color: green;
}

就我而言,我希望它在列表项之后加上一个逗号

.education li:not(:last-child):after {
        content: ",";
      }