you don’t need the clearfix on each box – just the parent. Perhaps you prefer the modular css and many classes (I don’t), but you can reduce and reuse classes (box 1 and 3 are the same as well as box 2 and 4). I would definitely _not_ use the clearing method John uses above in his fork. There is absolutely no reason to use the universal selector and add garbage to every element on the page. Please know that there a multiple ways of containing floats, and which one you choose will (or should) depend on the situation. The clearfix method is a very good choice most of the time, but I still prefer overflow:hidden.
Here’s my fork showing how this can be done without a single class (just as a proof of concept)
http://codepen.io/wolfcry911/pen/qkyEd