有没有办法,使用 css选择器(没有javascript),只有在没有其他内容时才选择子元素?
我想实现以下目标:
<style>p b:only-child { color: red }</style>
<p><b>this should be red</b></p>
<p><b>this</b> should be not</p>
<p><b>this</b> <i>neither</i></p>
:only-child
选择器适用于第三行,但不适用于第二行。请参阅此jsfiddle。
答案 0 :(得分:3)
如果您查看规范,请在structural pseudo-classes部分下面说明:
选择器引入了结构伪类的概念,允许基于文档树中的额外信息进行选择,但不能用其他简单的选择器或组合器来表示。
在计算父元素子元素列表中元素的位置时,不会计算独立文本和其他非元素节点。在计算父元素子元素列表中元素的位置时,索引编号从1开始。
考虑到文本节点存在的唯一选择器(对于不匹配,奇怪的是):empty
。包括:only-child
在内的所有其他结构伪类都不考虑它们。