Расширяемый DIV в зависимости от области просмотра

Я пытаюсь сделать div, ширина и высота которого будут пропорционально уменьшаться или расширяться в зависимости от области просмотра. Как вы можете видеть в приведенном выше примере, этот метод заставит мой div расширяться только по горизонтали, но не по вертикали (фиксированная высота). Если я попытаюсь указать проценты для значений высоты моей оболочки или main_content, браузер просто проигнорирует значения высоты, если они не указаны в пикселях или ems. Как я могу заставить это работать? В моей голове, если бы я мог просто указать высоту моего div в процентах, это решило бы проблему, верно?

<div class=".wrapper">
  <div id="main_content"></div>
<div>

.wrapper{
   width: 80%;
   margin : 0 auto;
}

#main_content{
  width : 100%;
  height : 500px;
} 

person Carlos R. Batista    schedule 15.09.2012    source источник


Ответы (1)


Короткий ответ:

html, body {
    height: 100%;
}

Длинный ответ:

Ваши html и body также являются контейнерами, и их высота автоматически масштабируется вместе с содержимым. К сожалению, когда вы устанавливаете height: 100% в своей обертке, высота устанавливается как 100% контейнера, что автоматически является высотой вашей обертки без отступов и полей. Тогда решение состоит в том, чтобы установить высоту html равной 100% его родителя, фактического document, а затем установить высоту тела равной 100% его родителя, html. Тогда ваша обертка сможет быть установлена ​​в процентах от высоты документа.

person Royce Feng    schedule 15.09.2012