The :empty pseudo-class represents any element that has no children at all. Only element nodes and text (including whitespace) are considered. Comments or processing instructions do not affect whether an element is considered empty or not.


<element>:empty { /* style properties */ }


.box {
  background: red;
  height: 200px;
  width: 200px;

.box:empty {
  background: lime;
<div class="box"><!-- I will be lime --></div>
<div class="box">I will be red</div>
<div class="box">
    <!-- I will be red because of the whitespace around this comment -->


Specification Status Comment
Selectors Level 4
The definition of ':empty' in that specification.
Working Draft No change
Selectors Level 3
The definition of ':empty' in that specification.
Recommendation Initial definition

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 1.0 1.0 (1.7 or earlier) 9.0 9.5 3.1
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 2.1 1.0 (1) 9.5 10.0 3.1

Document Tags and Contributors

 Last updated by: Sebastianz,