Колонки одинаковой высоты средствами только CSS

Часто при блочной верстке встает проблема выравнивания колонок по высоте. Обычно используют (по крайней мере я использовал) ява скрипты. Но мне это надоело, тем более что часто при их использовании возникал глюк в IE — при скроле страницы до самого низа, скрипт скролил обратно и в зависимости от версии этого саомго IE, скролил он на разные высоты — от 5px да 150px вверх. Меня это жутко раздражало, поэтому я все время искал, как бы сделать выравнивание колонок средствами c CSS. Способ нашелся!

И так, суть метода заключается в том, что мы сначала задаем этим колонками максимальный padding по низу, и в этоже время такой же но отрицательный margin, все по тому же низу. Дальше оборачиваем колонки, которые надо выровнять еще одним слоем, и задаем ему overflow: hidden. В итоге, получаем выровненные колонки.

Текст Вот так выглядит CSS:

#wrapper{
 overflow: hidden;
 width: 100%
}
#menuColumn {
 float: left;
 padding-bottom: 32767px;
 margin-bottom: -32767px;
}
#ContentColumn {
 float: right;
 padding-bottom: 32767px;
 margin-bottom: -32767px;
}

Пример работы

Внимание!

Обнаружена проблема при использовании данного метода, при добавлении на страницу якорей.
Если на странице стоит якорь, и человек переходит по ссылке на данный якорь, то прокручивается до якоря не вся страница, а содержимое контейнера колонки!
Если кто то знает, как справиться с данной проблемой, пожалуйста напишите в комментариях.
Пример глюка
Благодарность за найденную проблему выписывается пользователю evgenik.

14 комментариев on "Колонки одинаковой высоты средствами только CSS"


  1. Потрясающе! Спасибо огромное за решение. Уже просмотрела с десяток сайтов, как выровнять колонки, много оберток, сдвигов и кода, а благодаря Вашему решению, все решилось 4-мя дополнительными строчками.

    Ответить

  2. Такой код короткий — да. Работоспособный — нет. Таким способом, у вас документ становится высотой 5000px. Используя метод из поста, документ в высоту равен высоте либо контента, либо меню, смотря что выше.

    Ответить

  3. Скажите пожалуйста в данной реализации не возникала ни у кого проблемы с якорями?
    В теле страницы, например в нижней её части, разместили якорь и ссылаемся на него по ссылке. В итоге якорь с страницей проматывается на самый верху видимой области и отсутствует возможность перетащить ползунок на верх — он остается установленным в крайнее верхнее положение т.е. просмотреть начало страницы нельзя.

    Ответить

  4. Ищу как реализовать выравнивание столбцов через js, в сети наоборот только через CSS. Js один раз подключил и забыл
    Один Js нашел, но выравнивает криво и с багами

    Ответить

  5. golavskiydm, был у меня такой скрипт где то… Реализован был на JQuery. Там всего пара десятков строк кода. Если найду, выложу.

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.