高さがブラウザ ウィンドウの高さのパーセンテージになるモーダル ダイアログを作成しようとしています。モーダルには最小の高さを持たせて、ありえないほど小さくならないようにし、ウィンドウのサイズが変更されるとそれに応じて拡大/縮小/再中央揃えする必要があります。モーダルには、モーダル本体のコンテンツを挟むヘッダーとフッターがあります。
これが私がこれまでに思いついたものです。ウィンドウを垂直方向にサイズ変更すると、赤いボックスが正しく拡大され、中央に配置されたままになります。ただし、コンテンツ エリアとフッターは、モーダル コンテナー (赤いボックス) の一番下まで埋まっていないようです。
ここで何が起こっていて、どうすれば修正できますか?
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)
})
});