:empty 是 css 中用于选择无任何子节点(包括文本、空格、换行)元素的 伪类 。示例中仅第一个 div 被选中,后续因含空格或子标签不匹配。使用时需确保元素完全为空,常用于隐藏空容器或提示空输入框,结合。trim() 和结构检查可提升准确性。

在 CSS 中选择空元素,可以使用 :empty 伪类选择器 。这个 选择器 能匹配那些内部没有任何内容的元素,包括文本、子元素或空白符(如空格、换行)都不会存在。
什么是:empty?
:empty 用于选择没有子节点的元素。这里的“子节点”包括:
只要元素内有任何内容,:empty 就不会匹配它。
示例:
立即学习 “ 前端免费学习笔记(深入)”;
<div class="box"></div> <!-- 匹配 :empty --> <div class="box"> </div> <!-- 不匹配(包含空格)--> <div class="box"><p></p></div> <!-- 不匹配(有子元素)-->
如何正确使用:empty
确保目标元素真正“空”,避免意外的空白。常见技巧:
实用场景举例
隐藏无内容的容器:
.message:empty {display: none;}
给空输入框加提示样式:
.input-placeholder:empty::before {content: " 请输入内容 "; color: #999;}
注意:如果元素中有不可见字符或换行,:empty 将失效。建议在开发时检查 dom 结构是否干净。
基本上就这些,掌握:empty 的关键是理解“空”的定义——完全无内容才算是空。


