使用 :empty:only-child 可精准选中并隐藏无内容且唯一的子元素,适用于清理动态生成的空标签,但需注意空白符影响匹配。
当使用 :empty 和 :only-child 伪类结合时,可以精准选中那些既是唯一子元素又是空内容的元素,并对其隐藏或样式控制。这种组合在清理页面中无意义的空标签时非常实用。
:empty 选择没有任何子元素或文本内容的元素,哪怕有空格或换行符都不算“空”。
:only-child 选择父元素中唯一的那个子元素。
两者同时使用时,只有当一个元素既没有内容,又是其父级的唯一子元素时,才会被匹配。
例如,以下 HTML 中有一个 div 包含一个空的 span:
你可以这样写 CSS 来隐藏它:
span:empty:only-child {
display: none;
}
这个规则的意思是:如果 span 是空的,且是其父元素中唯一的子元素,就将它隐藏。
际应用场景与注意事项 因含空格而不被视为 empty*:empty:only-child 来统一处理所有类型的空且唯一的子元素基本上就这些。合理利用这两个伪类的组合,可以在不修改 HTML 结构的前提下,干净地隐藏无意义的空元素。