Tôi đang định tâm một DIV bên trong một DIV khác bằng flexbox. Hãy nghĩ về một cửa sổ hộp thoại bật lên ở giữa màn hình khi cần thiết.
Nó hoạt động tốt, tuy nhiên nó sẽ trông tốt hơn nhiều nếu không gian bên trên và bên dưới hộp thoại không chính xác bằng nhau, có 40% không gian còn lại ở trên và 60% bên dưới hộp thoại. Nó trở nên khó khăn vì chiều cao hộp thoại thay đổi theo số lượng văn bản bên trong.
Vì vậy, ví dụ, nếu chiều cao trình duyệt là 1000 px và chiều cao cửa sổ hộp thoại là 400 px, tôi muốn không gian dọc còn lại (600 px) ở trên 240 px và 360 px bên dưới hộp thoại. Tôi có thể làm điều đó với Javascript, nhưng tôi tò mò liệu có cách nào thông minh với CSS không. Tôi đã thử thêm một lề dưới vào #dialogBox DIV, nhưng nó không hoạt động khi chiều cao hộp thoại đang ở gần độ cao của trình duyệt.
#dialogBoxPanel
{
position:absolute;
display:flex;
align-items:center;
justify-content:center;
left:0px;
top:0px;
width:100%;
height:100%;
}
#dialogBox
{
width:350px;
}
<div id="dialogBoxPanel">
<div id="dialogBox">Text</div>
</div>