This has been around since CSS2 but using clear divs or applying the 'clear' attribute correctly is still preferred because the ':after' pseudo-element is not supported before IE8 and in older versions of other browsers.

So until everyone stops using IE6 and IE7, professional websites will continue to manage without ':after'.

Same issue with 'content:'.