:empty

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.

/* Selects any <div> that contains no content */
div:empty {
  background: lime;
}

Syntax

:empty

Examples

body {
  display: flex;
  justify-content: space-around;
}
.box {
  background: red;
  height: 100px;
  width: 100px;
}
.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 -->
</div>

Specifications

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 Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support 1.0 (Yes) 1.0 (1.7 or earlier) 9.0 9.5 3.1
Feature Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 2.1 (Yes) 1.0 (1) 9.5 10.0 3.1

Document Tags and Contributors

 Last updated by: chrisdavidmills,