Лично я отказался от использования поплавков. Я нахожу их слишком темпераментными, чтобы с ними работать.
Теперь я использую display: inline-block;
вместо поплавков. Обратите внимание, что IE7 и ниже не поддерживают это, но есть исключительный взлом CSS, который отлично работает. Используйте условные комментарии и отдельный файл CSS для IE7 и ниже.
* Кросс-браузерный хакер Inline-Block отлично подходит для решения этой проблемы.
Для всех моих проектов я определяю класс inline-block.
.inline-block
{
display: inline-block;
}
и в файле IE CSS у меня есть:
.inline-block
{
zoom: 1;
*display: inline;
}
Затем вы можете легко расположить макеты любой жидкости, разместив элементы div рядом друг с другом и установив процентную ширину для каждого. Я обычно определяю класс, который обозначает фиксированную ширину в процентах
.twenty-five-perc
{
width: 25%;
}
Таким образом, ваш полученный HTML может выглядеть так:
<div>
<div class="inline-block twenty-five-perc">
</div><div class="inline-block twenty-five-perc">
</div><div class="inline-block twenty-five-perc">
</div><div class="inline-block twenty-five-perc">
</div>
</div>
Теперь вы можете задаться вопросом, почему у меня открывающие теги div
на той же строке, что и предыдущий закрывающий тег. Это потому, что inline-block
учитывает пробелы, и это нарушит компоновку. Подробнее об этой проблеме и способах ее устранения вы можете прочитать здесь: http://www.lifeathighroad.com/web-development/css-web-development/inline-block-whitespace-workaround/
Немного болтовни здесь, но в результате вы можете делать действительно хорошие текучие макеты, не разбираясь с плавающими макетами.