looks the same in opera 7.2 (win) as it does in your mac screencap.
cut out <div class="menu"> </div> and everything between and paste it
back in right after the </div> that has the "end of content" comment.
forgot a bit.
instead of floating elements left and right in future an easier method
is to apply a margin to the main content and float the menu into that
margin.
#menu{width:20ex;float:left;border:1px solid green;}
#content{margin-left:21ex;border:1px solid red;}
<div id="menu"> <-- has 20ex width
menu<br>
menu<br>
menu<br>
</div>
<div id="content"> <-- has 21ex left margin that the 20ex menu floats into
content<br>
content<br>
content<br>
</div>
if you want the content to be physically first in the markup instead
of the menu:
body{margin:0;padding:8px;}
#content{margin-left:21ex;border:1px solid red;}
#menu{width:20ex;left:8px;top:8px;border:1px solid
green;position:absolute;}
<div id="content"> <-- same style as before. 21ex left margin
content<br>
content<br>
content<br>
</div>
<div id="menu"> <-- positioned rather than floated into the the left margin of the content <div>
menu<br>
menu<br>
menu<br>
</div>
if you want the menu to stay in one spot when scrolling change
absolute to fixed (not supported by IE)