У меня проблемы с этим вопросом в течение длительного времени.Я считаю, что это довольно распространенная проблема для разметки с плавающей точкой, и я хотел бы, чтобы кто-то дал «стандартное» решение.Рассмотрим следующую простую компоновку:
<div class='parent clearfix'>
<div id='child1' style='float:left; width:500px'>
{ ... child 1 content goes here ... }
</div>
<div id='child2' style='margin-left:501px;'>
{ ... child 2 content goes here ... }
</div>
</div>
Здесь clearfix - это распространенный метод автоматической очистки плавающих дочерних элементов.Проблема в том, что макет не работает, если child2 содержит еще один элемент clearfix .Например, если дочерний контент 2:
<div class='inside clearfix'>
<div class='sub1' style='float-left; width:100px'>
{ ... extra content goes here ... }
</div>
<div class='sub2' style='margin-left:101px'>
{ ... extra content goes here ... }
</div>
</div>
Так, в общем случае, если мы используем clear: оба внутри плавающего макета (внутри не плавающего элемента), он также очищает родительский контейнер.
Я знаю, как это сделать, если использовать абсолютную позицию и немного js, но это не очень хорошая практика.
Как исправить это с помощью float ?
Спасибо!