This is a general question and something that dawned on me and seemed to make sense. I have seen many people use clearing divs and
I prefer the CSS only approach. Regarding the semantics between div and hr I am not sure I think hr makes any more sense to use than a div. The hr tag is meant to create a "paragraph-level thematic break".
http://dev.w3.org/html5/markup/hr.html
CSS only solution:
http://www.positioniseverything.net/easyclearing.html