gpt4 book ai didi

css - 有没有办法为 "all elements except the first/last"指定一个 CSS 速记?

转载 作者:数据小太阳 更新时间:2023-10-29 09:11:21 26 4
gpt4 key购买 nike

很多时候,需要为除第一个(或最后一个)元素之外的所有元素指定 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com