I do have one tip. On every site I design in the css i make a class as follows;
.clear { clear: both; }
When using anything which floats it will always try to float left or right inline with the others. By adding an extra div with the class "clear" then it jams a line in and starts a fresh aligning, like a new row. In addition float can also cause images to 'overhang' like your first example showed the car in the foooter nav (unless that was intended). Here is an example for you.
<html>
<head>
<title>Untitled Document</title>
<style type="text/css">
html {
font-family: Arial, Helvetica, sans-serif;
}
#wrap {
width: 1000px;
margin: 0 auto;
background: #ccc;
}
#wrap .col {
width: 240px;
margin: 5px;
float: left;
}
</style></head>
<body>
<div id="wrap">
<div class="col"><b>Col 1:</b> A little bit of text. This is a little bit of text to show small.</div>
<div class="col"><b>Col 2:</b> More text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin et libero libero, in tincidunt diam. Curabitur massa ipsum, interdum vel porta at, facilisis in sem. Maecenas ornare turpis vel nunc vestibulum feugiat. Integer augue erat, faucibus nec rhoncus sit amet, facilisis nec metus. Suspendisse vitae risus sed nunc laoreet condimentum. Duis id dapibus est. Sed enim quam, vestibulum at varius nec, ultricies nec neque. Sed non libero ligula, vitae imperdiet nisi. Phasellus viverra, nulla a iaculis posuere, mi erat malesuada urna, quis euismod risus lorem vitae est.</div>
<div class="col"><b>Col 3:</b> A little bit of text. This is a little bit of text to show small again but will start issues.</div>
<div class="col"><b>Col 4:</b> This is a little bit of text to show small again but watch the next one.</div>
<div class="col"><b>Col 5:</b> More text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin et libero libero, in tincidunt diam. Curabitur massa ipsum, interdum vel porta at, facilisis in sem. Maecenas ornare turpis vel nunc vestibulum feugiat. Integer augue erat, faucibus nec rhoncus sit amet, facilisis nec metus. Suspendisse vitae risus sed nunc laoreet condimentum. Duis id dapibus est. Sed enim quam, vestibulum at varius nec, ultricies nec neque. Sed non libero ligula, vitae imperdiet nisi. Phasellus viverra, nulla a iaculis posuere, mi erat malesuada urna, quis euismod risus lorem vitae est.</div>
<div class="col"><b>Col 6:</b> This is a little bit of text to show small again but watch the next one.</div>
</div>
</body>
</html>
In a browser you'll see this has them all over the place but by adding the class "clear" we can change this and make the background grey wrap around the cols.
<html>
<head>
<title>Untitled Document</title>
<style type="text/css">
html {
font-family: Arial, Helvetica, sans-serif;
}
#wrap {
width: 1000px;
margin: 0 auto;
background: #ccc;
}
#wrap .col {
width: 240px;
margin: 5px;
float: left;
}
.clear { clear: both; }
</style></head>
<body>
<div id="wrap">
<div class="col"><b>Col 1:</b> A little bit of text. This is a little bit of text to show small.</div>
<div class="col"><b>Col 2:</b> More text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin et libero libero, in tincidunt diam. Curabitur massa ipsum, interdum vel porta at, facilisis in sem. Maecenas ornare turpis vel nunc vestibulum feugiat. Integer augue erat, faucibus nec rhoncus sit amet, facilisis nec metus. Suspendisse vitae risus sed nunc laoreet condimentum. Duis id dapibus est. Sed enim quam, vestibulum at varius nec, ultricies nec neque. Sed non libero ligula, vitae imperdiet nisi. Phasellus viverra, nulla a iaculis posuere, mi erat malesuada urna, quis euismod risus lorem vitae est.</div>
<div class="col"><b>Col 3:</b> A little bit of text. This is a little bit of text to show small again but will start issues.</div>
<div class="col"><b>Col 4:</b> This is a little bit of text to show small again but watch the next one.</div>
<div class="clear"></div> <!-- This starts a new row --->
<div class="col"><b>Col 5:</b> More text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin et libero libero, in tincidunt diam. Curabitur massa ipsum, interdum vel porta at, facilisis in sem. Maecenas ornare turpis vel nunc vestibulum feugiat. Integer augue erat, faucibus nec rhoncus sit amet, facilisis nec metus. Suspendisse vitae risus sed nunc laoreet condimentum. Duis id dapibus est. Sed enim quam, vestibulum at varius nec, ultricies nec neque. Sed non libero ligula, vitae imperdiet nisi. Phasellus viverra, nulla a iaculis posuere, mi erat malesuada urna, quis euismod risus lorem vitae est.</div>
<div class="col"><b>Col 6:</b> This is a little bit of text to show small again but watch the next one.</div>
<div class="clear"></div> <!-- This clears the float to allow the wrap bg to show --->
</div>
</body>
</html>
There are other ways to space cols, this is just an example of the clear method. I hope this helps.