Я пытаюсь создать модальное диалоговое окно, высота которого будет составлять процент от высоты окна браузера. Модаль должен иметь минимальную высоту, так что он не может стать невероятно малым и должен соответственно увеличиваться/уменьшаться/перестраиваться по мере изменения размера окна. Модальный имеет заголовок и нижний колонтитул, который сэндвич содержит контент модального тела.Модальный с процентной высотой и минимальной высотой
Вот что я придумал до сих пор. Если я изменил размер окна по вертикали, красный ящик будет расти правильно и останется центрированным. Тем не менее, область содержимого и нижний колонтитул, похоже, не заполняются вплоть до нижней части модального контейнера (красная рамка).
Что здесь происходит, и как я могу это исправить?
HTML:
<div class="modal">
<div class="modal-header">Header</div>
<div class="modal-body">
[...words...]
</div>
<div class="modal-footer">Footer</div>
</div>
CSS:
.modal {
border:1px solid red;
width:600px;
position:absolute;
top:50%;
left:50%;
}
.modal-header, .modal-body, .modal-footer {
padding:10px;
}
.modal-header, .modal-footer {
background:#ccc;
font-weight:bold;
font-size:14px;
}
.modal-body {
height:inherit;
overflow:auto;
line-height:1.75em;
}
JQuery:
$(function() {
$('.modal').css('height','50%');
$('.modal').css({
'margin-top': (-1*$('.modal').height()/2),
'margin-left': (-1*$('.modal').width()/2)
})
});
$(window).resize(function() {
$('.modal').css({
'margin-top': (-1*$('.modal').height()/2),
'margin-left': (-1*$('.modal').width()/2)
})
});
Ваш ответ лучше, чем у меня. +1 – DontVoteMeDown
Это работает. Спасибо за помощь! – Jon
@DontVoteMeDown, нет нет нет нет нет ... – coma