I got http://jsfiddle.net/8p2Wx/2/ from a previous question I asked and I see these lines:
.cf:before,
.cf:after {
    content:"";
    display:table;
}
.cf:after {
    clear:both;
}
If I take away content:"", it ruins the effect, and I don't understand why it's necessary.
Why is it needed to add an empty content to :after and :before pseudo-elements?
 
     
     
     
     
     
    
` that is invisible in the DOM, but stylable through CSS.
– Mathias Bynens Mar 07 '12 at 10:52