Не секрет, что блоки div по умолчанию растягиваются по ширине на 100%, а по высоте только до размера содержимого. Я искал решение этой проблемы, находил различные варианты, но только один из них смог достаточно хорошо справиться с этой задачей.
А задача заключалась в следующем:
- Адекватная работа во всех браузерах.
- Без использования хаков css (хотя без этого не обошлось).
- Без использования javascript.
- Желательно понятный и небольшой код решения (чтобы потом не запутаться что и куда нужно лепить
).
Ниже представляю вам макет из трех колонок. Смотрим код css:
8 |
.cols .col1,.cols .col2,.cols .col3{ |
9 |
padding-bottom:10000px; |
10 |
margin-bottom:-10000px; |
14 |
background-color: green; |
22 |
background-color:blue; |
31 |
background-color:yellow; |
Здесь .cols – контейнер для трех колонок с суммарной шириной этих колонок. А фокус заключается в задании div свойств:
5 |
padding-bottom: 10000px; |
6 |
margin-bottom: -10000px; |
Этот код растягивает блоки div до высоты контейнера. В свою очередь высота контейнера задается самой высокой колонкой. HTML-код выглядит следующим образом:
3 |
<style type="text/css"> |
9 |
_zoom:1;/*Для 6-го IE, задаем hasLayout, на эту тему есть много постов на хабре*/ |
11 |
.cols .col1,.cols .col2,.cols .col3{ |
12 |
padding-bottom:10000px; |
13 |
margin-bottom:-10000px; |
17 |
background-color: green; |
25 |
background-color:blue; |
34 |
background-color:yellow; |
47 |
Департамент
градостроительства при текущем ремонте не планирует обустраивать
велоструктуру на улицах, которая предусмотрена в ходе капитального
ремонта. |
49 |
<div class="col2">Львовские
велосипедисты давно ждут постройки велосипедных дорожек в городе. Эти
надежды приобрели реальные очертания в 2007-м году, когда Львов попал в
число городов-хозяев Чемпионата Европы по футболу 2012-го года.
Городские чиновники обещали, что в ходе ремонта улиц, который будет
проводиться в рамках подготовки к Чемпионату, сразу оборудуют и
велоструктуру. |
51 |
<div class="col3">Привет пользователь!</div> |