Часто при блочной верстке встает проблема выравнивания колонок по высоте. Обычно используют (по крайней мере я использовал) ява скрипты. Но мне это надоело, тем более что часто при их использовании возникал глюк в 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;
}
Внимание!
Обнаружена проблема при использовании данного метода, при добавлении на страницу якорей.
Если на странице стоит якорь, и человек переходит по ссылке на данный якорь, то прокручивается до якоря не вся страница, а содержимое контейнера колонки!
Если кто то знает, как справиться с данной проблемой, пожалуйста напишите в комментариях.
Пример глюка
Благодарность за найденную проблему выписывается пользователю
Потрясающе! Спасибо огромное за решение. Уже просмотрела с десяток сайтов, как выровнять колонки, много оберток, сдвигов и кода, а благодаря Вашему решению, все решилось 4-мя дополнительными строчками.
Пожалуйста. Рад что пригодилось
ещё короче:
#wrapper{
overflow: hidden;
width: 100%
}
#menuColumn {
float: left;
top: 0;
heigh: 5000px;
}
#ContentColumn {
float: right;
top: 0;
height: 5000px;
}
Такой код короткий — да. Работоспособный — нет. Таким способом, у вас документ становится высотой 5000px. Используя метод из поста, документ в высоту равен высоте либо контента, либо меню, смотря что выше.
хуйня полная, при таком раскладе футер убежит вниз на сотню экранов.
Специально для вас, добавил в пример футер. Отлично работает, и ни каких сотен экранов вниз.
Спасибо огромное автору! долгое время не мог решить эту проблему! =)
Всегда пожалуйста.
Скажите пожалуйста в данной реализации не возникала ни у кого проблемы с якорями?
В теле страницы, например в нижней её части, разместили якорь и ссылаемся на него по ссылке. В итоге якорь с страницей проматывается на самый верху видимой области и отсутствует возможность перетащить ползунок на верх — он остается установленным в крайнее верхнее положение т.е. просмотреть начало страницы нельзя.
evgenik, дайте, пожалуйста ссылку на страницу, где это происходит. Я с таким пока что не встречался.
Ищу как реализовать выравнивание столбцов через js, в сети наоборот только через CSS. Js один раз подключил и забыл
Один Js нашел, но выравнивает криво и с багами
golavskiydm, был у меня такой скрипт где то… Реализован был на JQuery. Там всего пара десятков строк кода. Если найду, выложу.
Вот только в этом способе есть один минус. Свойство border-radius не будет отображать нижнего округленного угла.
Да, есть такое дело. Но вы не учли тот момент, что статья писалась еще 2 года назад, а метод изобрели и того раньше 😉