select:only-child仅在没有其他内容的情况下

时间:2015-02-02 16:03:28

标签: css css-selectors

有没有办法,使用 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

1 个答案:

答案 0 :(得分:3)

如果您查看规范,请在structural pseudo-classes部分下面说明:

  

选择器引入了结构伪类的概念,允许基于文档树中的额外信息进行选择,但不能用其他简单的选择器或组合器来表示。

     

在计算父元素子元素列表中元素的位置时,不会计算独立文本和其他非元素节点。在计算父元素子元素列表中元素的位置时,索引编号从1开始。

考虑到文本节点存在的唯一选择器(对于不匹配,奇怪的是):empty。包括:only-child在内的所有其他结构伪类都不考虑它们。