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 !!!














83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?