Created
April 22, 2011 00:36
-
-
Save necolas/935783 to your computer and use it in GitHub Desktop.
Cross-browser, consistent float-containment methods
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Containing floats in a consistent manner | |
* By Jonathan Neal and Nicolas Gallagher | |
*/ | |
/* | |
* New block formatting context method | |
* IE 6+, Firefox 2+, Safari 4+, Opera 9+, Chrome | |
*/ | |
.nbfc { | |
overflow: hidden; | |
/* for IE 6/7 */ | |
*zoom: expression(this.runtimeStyle.zoom="1", this.appendChild(document.createElement("br")).style.cssText="clear:both;font:0/0 serif"); | |
/* non-JS fallback */ | |
*zoom: 1; | |
} | |
/* | |
* Clearfix method (contemporary browsers) | |
* IE 6+, Firefox 3.5+, Safari 4+, Opera 9+, Chrome | |
* (needs old mobile browser testing) | |
*/ | |
.cf { | |
/* for IE 6/7 */ | |
*zoom: expression(this.runtimeStyle.zoom="1", this.appendChild(document.createElement("br")).style.cssText="clear:both;font:0/0 serif"); | |
/* non-JS fallback */ | |
*zoom: 1; | |
} | |
.cf:before, | |
.cf:after { | |
content: ""; | |
display: table; | |
} | |
.cf:after { | |
clear: both; | |
} | |
/* | |
* Clearfix method (increased legacy browser support) | |
* IE 6+, Firefox 2+, Safari 4+, Opera 9+, Chrome | |
*/ | |
.cf { | |
/* for IE 6/7 */ | |
*zoom: expression(this.runtimeStyle.zoom="1", this.appendChild(document.createElement("br")).style.cssText="clear:both;font:0/0 serif"); | |
/* non-JS fallback */ | |
*zoom: 1; | |
} | |
.cf:before, | |
.cf:after { | |
content: "."; | |
display: block; | |
height: 0; | |
overflow: hidden; | |
visibility: hidden; | |
} | |
.cf:after { | |
clear: both; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@parweb That expression is longer although it's unlikely you'd need the
font
part when using adiv
. However, by using an element likediv
the technique becomes more brittle because someone may choose to stylediv
within an element receiving the clearfix class. If you were to write some CSS likeThen your clearing
div
is going to get those extra styles in IE7. This is why we are usingbr
. It's safer and easier