Describe `float`s and how they work.
Float is a CSS positioning property. Floated elements remain a part of the flow of the page, and will affect the positioning of other elements (e.g. text will flow around floated elements), unlike position: absolute
elements, which are removed from the flow of the page.
The CSS clear
property can be used to be positioned below left
/right
/both
floated elements.
If a parent element contains nothing but floated elements, its height will be collapsed to nothing. It can be fixed by clearing the float after the floated elements in the container but before the close of the container.
Clearfix hack
The .clearfix
hack uses a clever CSS pseudo-element (::after
) to clear floats. Rather than setting the overflow on the parent, you apply an additional class clearfix
to it. Then apply this CSS:
.clearfix::after {content: ' ';visibility: hidden;display: block;height: 0;clear: both;}
Alternatively, give overflow: auto
or overflow: hidden
property to the parent element which will establish a new block formatting context inside the children and it will expand to contain its children.
Trivia
In the good old days, CSS frameworks such as Bootstrap 2 used the float
property to implement its grid system. However with CSS Flexbox and Grid these days, there is no longer much need to use the float
property.