Есть целый ряд решений этой проблемы, в том числе OneTrueLayout Техника, Поддельный Колонны Техника и CSS табличный дисплей Техника.
Лучшее решение в равной степени высоты изд столбцов является CSS Tabular Display Technique, что означает использовать дисплей: таблица функции. Он работает для Firefox 2+, Safari 3+, Opera 9+ и IE8.
Код для CSS табличный Display:
HTML-
<div id="container">
<div id="rowWraper" class="row">
<div id="col1" class="col">
Column 1<br />Lorem ipsum<br />ipsum lorem
</div>
<div id="col2" class="col">
Column 2<br />Eco cologna duo est!
</div>
<div id="col3" class="col">
Column 3
</div>
</div>
</div>
CSS-
<style>
#container{
display:table;
background-color:#CCC;
margin:0 auto;
}
.row{
display:table-row;
}
.col{
display: table-cell;
}
#col1{
background-color:#0CC;
width:200px;
}
#col2{
background-color:#9F9;
width:300px;
}
#col3{
background-color:#699;
width:200px;
}
</style>
Даже если есть проблема с авто- расширение ширины таблицы-ячейки может легко разрешить, вставив другой div с табличной ячейкой и придав ему фиксированную ширину. Во всяком случае, чрезмерное расширение ширины происходит в случае использования чрезвычайно длинных слов (что я сомневаюсь, что кто-то использовал бы, скажем, длинное слово длиной 600 пикселей), или какая-то ширина div, ширина которой больше ширины таблицы.
Faux Column Technique может быть решением этой проблемы, но у него есть некоторые недостатки, такие как вы должны изменить размер фонового изображения, если вы хотите изменить размер столбцов, а также не изящное решение.
OneTrueLayout Technique состоит из создания нижней части крайней большой высоты и ее вырезания путем приведения реального положения границы к «нормальному логическому положению» путем применения отрицательного края-основания того же огромного значения и скрыть степень, созданная дополнением с переполнением: скрытая, применяемая к конвейеру содержимого. Упрощенный пример будет:
HTML-файл:
<html><head>
<style>
.wraper{
background-color:#CCC;
overflow:hidden;
}
.floatLeft{
float:left;
}
.block{
padding-bottom:30000px;
margin-bottom:-30000px;
width:100px;
background-color:#06F;
border:#000 1px solid;
}
</style>
</head>
<body>
<div class="wraper">
<div class="block floatLeft">first col</div>
<div class="block floatLeft">
Second col<br />Break Line
</div>
<div class="block floatLeft">Third col</div>
</div>
</body>
</html>
На моем взгляде невыполненная высоты 100% в автоматизированном контейнере высоты является одним из основных недостатков и W3C следует рассмотреть вопрос о пересмотре этого атрибута.
Другие ресурсы: link1, link2, link3, link4, link5 (important)