Norbert27
Компетентный
Выравнивание колонок с одинаковой высотой
В блочной верстке, до сих пор остается актуальной проблема позиционирования колонок. В этой статье я расскажу, как можно манипулировать положением и высотой столбцов с минимальными усилиями.
Например, у нас в макете есть две колонки — первая резиновая, с контентом, а другая фиксированная — с блоком навигации и прочей второстепенной информацией.
Пример двухколоночного макета
Я не являюсь корифеем блочной верстки, и подобная задача мне показалась довольно нетривиальной. Если поместить код сайдбара до основного контента, то проблема легко решается традиционными margin и float. Но мне хотелось, чтобы основной контент находился в коде раньше, чем второстепенная информация.
Сперва я решил проблему «в лоб», с помощью таблиц.
PHP:
<table class="container">
<tr>
<td class="content">...</td>
<td class="aside">...</td>
</tr>
</table>
Как-то, в очередной раз вернувшись к решению этой проблемы, я вспомнил, что у css-свойства display есть атрибуты table и table-cell. При заданном display:table, элемент будет иметь свойства таблицы, а display:table-cell говорит браузеру, что элемент нужно интерпретировать, как табличную ячейку.
PHP:
.container {
display: table;
width: 100%;
}
article,
aside {
display: table-cell;
vertical-align: top;
}
aside {
width: 300px;
}
PHP:
<section class="container">
<article>...</article>
<aside>...</aside>
</section>
