问题描述
您发布的版本之一实际上适用于所有现代浏览器(支持CSS选择器级别 3):
div ul:not(:first-child) {
background-color: #900;
}
如果您需要支持旧版浏览器,或者如果您受到:not
选择器的限制(它只接受一个简单的选择器作为参数),那么您可以使用另一种技术:
定义一个范围比您想要的更大的规则,然后有条件地“撤销”它,将其范围限制在您想要的范围内:
div ul {
background-color: #900; /* applies to every ul */
}
div ul:first-child {
background-color: transparent; /* limits the scope of the prevIoUs rule */
}
解决方法
我有一个div
包含多个标签的ul
标签。
我只能为第一个ul
标签设置 CSS 属性:
div ul:first-child {
background-color: #900;
}
但是,我以下尝试为ul
除第一个标签之外的其他标签设置 CSS 属性不起作用:
div ul:not:first-child {
background-color: #900;
}
div ul:not(:first-child) {
background-color: #900;
}
div ul:first-child:after {
background-color: #900;
}
我如何用 CSS 编写:“每个元素,除了第一个元素”?