Ond*_*žka 5 html css css-selectors html-heading
如何选择h*DOM中存在的第一个最高元素?
就像是
(h1, h2, h3, h4, h5, h6):first-of-ordered-set
Run Code Online (Sandbox Code Playgroud)
也就是说,如果一个DOM树有,在这个顺序h2,h3,h1,h2,h1,它会选择第一个h1;
如果DOM有h3,h3,h2,h2,h4,它会选择第一个h2.
我们假设h*元素不是嵌套的.
我怀疑CSS没有这种能力,对吧?
可能有用的思考:https://css-tricks.com/extremely-handy-nth-child-recipes-sass-mixins/
编辑:为什么我需要它:CMS系统将此"第一个顶部标题"作为文档的标题(帖子,页面,...).但它将它留在页面中.然后它显示标题两次 - 一次作为帖子标题,一次在体内.JavaScript已删除.最高h*级别可能不同.
我发现了一些东西。CSS 做不到。然而。
W3C 正在起草新功能:
.post-content:has(h1, h2, h3, h4, h5, h6)
Run Code Online (Sandbox Code Playgroud)
与 一起:not(),这将满足我的需要:
.post-content:has(h1) h1:first-of-kind,
.post-content:not(:has(h1)) h2:first-of-kind,
.post-content:not(:has(h1,h2)) h3:first-of-kind,
...
Run Code Online (Sandbox Code Playgroud)
有一个问题 -:not()当前只能有一个“简单选择器”。如果它支持更多,那么即使没有 也可以实现:has。
向未来的读者问好,希望一切顺利。目前,我对此保持开放态度,也许有人会用 CSS 3.1 来解决这个问题。