作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
很多时候,需要为除第一个(或最后一个)元素之外的所有元素指定 CSS 样式是很自然的。例如,在设置段落样式时,您希望为除最后一个元素之外的每个元素添加下边距(或者类似地,为除第一个元素之外的每个元素添加上边距)。
有没有办法做到这一点:
p {...}
然后 p:first-child {...}
更简洁?p:nth-child(-n+1)
更直接直观?如果没有,您是否知道有人尝试添加它?
最佳答案
对于除第一个子元素之外的所有 p
元素,使用其中一个(第二个得到更好的支持):
p:not(:first-child)
p:first-child ~ p
对于除最后一个子元素之外的所有 p
元素:
p:not(:last-child)
对于除第一个和最后一个子元素之外的所有 p
元素:
p:not(:first-child):not(:last-child)
像往常一样,CSS3 的 :not()
和 :last-child
直到 IE9+ 和其他浏览器的相对较新版本才被支持。除非您使用 JavaScript 或其他方式为您的第一个和最后一个 child 添加类,否则您在浏览器支持(IE8 及更早版本)方面不会走得太远。
记住 vertical margins collapse between in-flow paragraphs and their ancestor(s) ,因此除非您也想将这些段落的容器元素的边距清零,否则您不需要专门将第一个和最后一个 p
元素的边距清零。这是一个 fiddle来说明。
关于css - 有没有办法为 "all elements except the first/last"指定一个 CSS 速记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10033299/
我是一名优秀的程序员,十分优秀!