Clearfix

OSCC · CSS, Layout · Dec 30, 2020

Ensures that an element self-clears its children.

  • Use the ::after pseudo-element and apply content: '' to allow it to affect layout.
  • Use clear: both to make the element clear past both left and right floats.
  • For this technique to work properly, make sure there are no non-floating children in the container and that there are no tall floats before the clearfixed container but in the same formatting context (e.g. floated columns).
  • Note: This is only useful if you are using float to build layouts. Consider using a more modern approach, such as the flexbox or grid layout.
Preview
float a
float b
float c
<div class="clearfix">
  <div class="floated">float a</div>
  <div class="floated">float b</div>
  <div class="floated">float c</div>
</div>
.clearfix::after {
  content: '';
  display: block;
  clear: both;
}

.floated {
  float: left;
  padding: 4px;
}

Recommended snippets

  • Evenly distributes child elements within a parent element.

  • Ensures that an element with variable width will retain a proportionate height value.

  • Offscreen

    CSS, Layout

    Hides an element completely (visually and positionally) in the DOM while still allowing it to be accessible.