Grundwissen über die Tags, die du nutzt und deren Eigenschaften.
spans sind inline-Elemente (in einer Zeile... eine Tabelle ist ein Blockelement...)
Das was du suchst, sind divs... Blockelemente, die als Container fungieren und durch die float-Option quasi "fließend" folgen.
Als Buchtipp: CSS-Praxis von Kai Laborenz, erschienen bei Galileo Computing
"dadrunter" ist auch eine Wortwahl, die es nicht wirklich trifft. "cleaner" ist eine recht häufig genutzte Bezeichnung. Und damit du an manchen Stellen nicht erst in Schwierigkeiten kommst, würde ich dir ebenfalls "clear: both;" empfehlen.
Ein Link, der dir ebenfalls nach kurzer Googlesuche weiterhelfen könnte..
http://tjkdesign.com/articles/one_html_markup_many_css_layouts.asp