Hi,
was genau meintest du mit "wenn das innere element im textfluss ist" ?
genau das, was durch
float:left;
nicht mehr gegeben ist und zu dem Problem führen dürfte.
Wenn Du ein clearendes Element einfügst, z.B.
</ul>
<br style="clear:left; height:0; line-height:0; margin:0; padding:0;" />
</div>
dann hast Du nur noch ein Problem mit dem IE, der hier einen zusätzlichen Abstand macht. Den wegzubekommen scheint aber nicht einfach zu sein, zur Not display:none über conditional comment...
freundliche Grüße
Ingo