I have come across this many times, and unfortunately, the only solution I know of is a separate cleanup element to clear the float.
This is ugly, but it works:
<ul>
<li>List 1</li>
<li>List 2</li>
<li>List 3</li>
<li class="clear"> </li>
<li>List 4</li>
<li>List 5</li>
</ul>
CSS
.clear{
display: block;
float: none;
clear: both;
height: 1px;
line-height: 1px;
font-size: 1px;
}
, div 1 , (yay!).
IE7, guff javascript < IE8.