Способ сделать это с помощью CSS 2.1 - использовать таблицу отображения:
#content-wrap {
display: table-row;
}
#content-wrap div {
display: table-cell;
}
Причина, по которой большинство людей не использует его, заключается в том, что он не работает в IE6 и 7, также вам понадобится дополнительный элемент-обертка для объявления display: table
, чтобы все работало правильно.
Альтернативный подход с CSS3 заключается в использовании flexboxes :
#content-wrap {
display: -moz-box;
display: -webkit-box;
display: box;
}
#content-wrap div {
-moz-box-flex: 1;
-webkit-box-flex: 1;
box-flex: 1;
}
- Edit
Теперь, когда я стал старше и мудрее, вам действительно нужно это только для подхода display: table
:
#content-wrap {
display: table;
}
#content-wrap div {
display: table-cell;
}
Это должно работать с вашей текущей разметкой, механизм размещения вставит анонимный табличный объект , чтобы взять на себя роль table-row
.
Также обратите внимание, что черновой вариант flex box значительно изменился за последнее время, но браузеры все еще используют старый черновик.