Du hast eine dritte Möglichkeit (die einfachste!) vergessen:
block { overflow: hidden }
»overflow:hidden ist ... zwar eine sehr einfache und elegante, aber nicht unproblematische Lösung zum Einschließen von Floats.«
http://molily.de/weblog/css-floats-einschliessen#probleme-overflow-hidden
Mathias