This has done the rounds loads of times before - but clearing css floats is something I need to do all the time, and since I have to look up the code on every project I thought I would add it here so that I have a reminder.
This method uses css pseudo elements to do the clearing without adding random elements that contain 'clear:both;' which in turn means that the html is kept nice and clean and the css doesn't interfere with anything else.
.clear{zoom:1;}
.clear:after{content:" ";display:block;visibility:hidden;clear:both;}
.clear:before{content:" ";display:block;visibility:hidden;}
Since I also use it with LESS here's how I do that:
.clear {
zoom:1;
&:after {
content:" ";
display:block;
visibility:hidden;
clear:both;
}
&:before {
content:" ";
display:block;
visibility:hidden;
}
}
To use this just add the clear class to the element you want to clear.
<div class="clear"> <div class="float">Floaty thing here</div> <div class="float">Floaty thing here</div> </div>
CSS Pen image from Shutterstock
Each time I'm using the same method on my blog. For me it is the most "comfortable"
November 27, 2012
Ben, this looks very cool and I'm all in favor of using less code and saving time. Can you show a brief example of what the html would look like. Do you add .clear to a content element?
Now you can see I don't understand...
Thanks,
Bob
March 15, 2013
Hi Robert - yeah, just add clear as the css class for the container of the floated items. I've added a small sample to the code above
March 18, 2013