Hai giải pháp đó chỉ yêu cầu hai phần tử lồng nhau.
Thứ nhất - Định vị tương đối và tuyệt đối nếu nội dung là tĩnh (tâm thủ công).
.black {
position:relative;
min-height:500px;
background:rgba(0,0,0,.5);
}
.message {
position:absolute;
margin: 0 auto;
width: 180px;
top: 45%; bottom:45%; left: 0%; right: 0%;
}
https://jsfiddle.net/GlupiJas/5mv3j171/
hoặc cho thiết kế linh hoạt - để sử dụng trung tâm nội dung chính xác thay thế ví dụ dưới đây:
.message {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
https://jsfiddle.net/GlupiJas/w3jnjuv0/
Bạn cần đặt 'chiều cao tối thiểu' trong trường hợp nội dung vượt quá 50% chiều cao cửa sổ. Bạn cũng có thể thao tác chiều cao này với truy vấn phương tiện cho thiết bị di động và máy tính bảng. Nhưng chỉ khi Bạn chơi với thiết kế đáp ứng.
Tôi đoán Bạn có thể đi xa hơn và sử dụng tập lệnh JavaScript / JQuery đơn giản để thao tác chiều cao tối thiểu hoặc chiều cao cố định nếu cần vì lý do nào đó.
Thứ hai - nếu nội dung là linh hoạt, bạn cũng có thể sử dụng các thuộc tính css bảng và ô bảng với căn chỉnh dọc và căn giữa văn bản:
/*in a wrapper*/
display:table;
và
/*in the element inside the wrapper*/
display:table-cell;
vertical-align: middle;
text-align: center;
Hoạt động và chia tỷ lệ hoàn hảo, thường được sử dụng làm giải pháp thiết kế web đáp ứng với bố cục lưới và truy vấn phương tiện thao tác chiều rộng của đối tượng.
.black {
display:table;
height:500px;
width:100%;
background:rgba(0,0,0,.5);
}
.message {
display:table-cell;
vertical-align: middle;
text-align: center;
}
https://jsfiddle.net/GlupiJas/4daf2v36/
Tôi thích giải pháp bảng để căn giữa nội dung chính xác, nhưng trong một số trường hợp, định vị tương đối tuyệt đối sẽ làm tốt hơn, đặc biệt nếu chúng tôi không muốn giữ tỷ lệ căn chỉnh nội dung chính xác.