Я не уверен, что полностью понимаю вопрос, но попробую:
Я не верю, что есть время, когда поплавок разрушит запас. Я посмотрел на ваш код и не вижу никаких полей, установленных в css, которые затем «сворачиваются» при просмотре в браузере (я использую Safari).
Вот мои мысли:
В первой части вашего примера у вас есть обычный поток div перед плавающим div. Плавающий div будет визуализирован ниже нормального потока div.
Во второй части вашего примера у вас есть div с floatedRect выше обычных div-потоков. Вот когда вы видите, что текст перемещается вправо. Это не влияет на поля текста div или сворачивание полей. Это просто позволяет тексту «плавать» вокруг div-ов floatedRect. Я изменил ваш код для иллюстрации:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Inheritance Tests</title>
<style>
* {
margin: 0px ;
padding: 0px ;
font-family: courier ;
font-size: small ;
}
.test4 {width: 400px; height: 100px; border-style: solid; border-width: 1px;}
.test5 {border: 1px solid red; width: 200px; height: 50px; float: left; margin:10px; }
.floatedRect {
width: 50px ;
height: 50px ;
float: left ;
background-color: #9cf ;
}
.text {
margin: 10px; border:1px solid red; position:relative; z-index:1;
}
</style>
</head>
<body>
<div class="test5">
Floated
</div>
<div class="test4">
Normal Flow
</div>
<div style="margin-top: 100px">
Has a top margin
</div>
<div style="clear: both">
<div class="floatedRect"></div>
<div class="text">some text</div>
<div class="floatedRect"></div>
<div class="text">some text</div>
<div class="floatedRect"></div>
<div class="text">some text</div>
</div>
</body>
Обратите внимание, что текстовые элементы div имеют отступ по 10 пикселей, но текст был сдвинут вправо с помощью элементов floatedRect.
Надеюсь, это поможет.