E có 1 đoạn code HTML + CSS như sau dùng để tạo 1 cửa sổ popup
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Learn HTML & CSS</title>
<link rel="stylesheet" type="text/css" href="./test4.css" />
</head>
<body>
<div class="block"></div>
<div class="overlay"></div>
<div class="popup">This is a popup-window.</div>
</body>
</html>
CSS:
.block {
width:600px;
height:800px;
background-image: url("http://www.minimalisti.com/wp-content/uploads/2012/01/Building-architecture-Global-Bank-Tower.jpg");
background-repeat: no-repeat;
margin:auto;
border:2px solid red;
}
.overlay {
background-color: black;
position:fixed;
top:0;
left:0;
width:100vw;
height:100vh;
opacity:0.4;
filter:alpha(opacity=40);
}
.popup {
width:800px;
height:300px;
border:3px solid black;
text-align: center;
line-height: 300px;
background-color: white;
font-size:30px;
font-weight:bold;
position:fixed;
top:50%;
left:50%;
margin-top: -150px;
margin-left: -400px;
}
Kết quả:
Ở phần code CSS, trong selector .popup{}
, tại sao mình lại có thể ghi top:50%; left:50%;
được vậy ạ ? (vì parent element của thằng <div class="popup">
chưa có set width và height bằng 100%)
Còn 2 dòng dưới, em thử thay margin-top:-150px;
thành margin-bottom:150px;
(2 cái này tương đương nhau) nhưng sao lại không được ạ ? Tương tự, em thử thay margin-left:-400px;
thành margin-right:400px;
nhưng cũng không được luôn cần lắm 1 lời giải thích ^^
Em thử thay nội dung trong selector .popup{}
của code CSS lại như sau:
.popup {
width:60%;
height:40%;
border:3px solid black;
background-color: white;
font-size:30px;
font-weight:bold;
position:fixed;
top:30%;
left:20%;
display: flex;
justify-content: center;
align-items: center;
}
thì trình duyệt vẫn hiển thị kết quả bình thường như khi nãy.
Vậy thì câu hỏi e đặt ra là vì sao mình có thể set width và height bằng 60% với 40% được ạ ? (vì parent element của thằng <div class="popup">
ấy chưa set width và height luôn ???)
E thanks mn nhiều !!!