На этот вопрос уже есть ответ здесь:
Почему процентное значение для высоты
не работает, но процентное значение для ширины
работает?
Например :
#working{
width:80%;
height:140px;
background:orange;
}
#not-working{
width:80%;
height:30%;
background:green;
}
Ширина #working
составляет 80% области просмотра, но высота # неработающего
оказывается равной нулю