[英]Overlay div is not appearing on top of my main div
我正在嘗試進行疊加設計,單擊時我有一個按鈕,一個新的疊加 div 將顯示在我的主 div 頂部,但我似乎無法弄清楚為什么我創建的疊加 div 沒有出現. 我觀看了教程並搜索了與我類似的情況,但我不明白為什么它沒有顯示。
這是我的 html 頁面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css?family=Baloo+Chettan+2|Liu+Jian+Mao+Cao&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="thiscss/randomqoutes.css">
<title>Document</title>
</head>
<body>
<div class="container">
<h2>RCaT11</h2>
<div class="qoutewrapper">
<h1>Have an Inspirational day!</h1>
<button id="btn">Genererate Qoute</button>
</div>
<div class="overlaycontainer">
</div>
</div>
</body>
<script type="text/javascript" src="javascript/randomqoutes.js"></script>
</html>
這是我的 css 文件,我已將“overlaycontainer”類顯示設置為 none 以使其在單擊按鈕之前不會首先顯示:
body {
background: linear-gradient(to left, #ED8F20, #EBD626);
margin: 0;
padding: 50px;
}
.container {
display: flex;
}
.qoutewrapper {
font-family: 'Liu Jian Mao Cao', cursive, sans-serif;
width: 900px;
height: 250px;
margin: 0 auto;
margin-top: 10%;
padding: 10px;
display: flex
}
.qoutewrapper h1 {
white-space: nowrap;
font-weight: 700;
font-size: 70px;
margin: 0 auto;
position: relative;
left: 90px;
margin-top: 50px;
}
h2 {
font-family: 'Liu Jian Mao Cao', cursive, sans-serif;
font-size: 2em;
position: absolute;
left: 90%;
color: red;
float: right;
}
.container button {
color: rgba(26, 25, 25, 0.897) !important;
text-transform: uppercase;
background: none;
padding: 12px;
border: 2px dotted rgba(26, 25, 25, 0.897) !important;
font-weight: 800;
float: right;
margin-top: 200px;
}
.container button:hover {
color: #EBD626 !important;
background: rgba(26, 25, 25, 0.897);
border-color: none !important;
transition: all 0.4s ease 0s;
display: flex;
}
.overlaycontainer {
width: 100%;
height: 100%;
background-color: black;
opacity: 0.7;
display: none;
}
這是我的 javascript 文件,我寫過當單擊按鈕時,顯示將設置為“flex”以顯示“overlaycontainer”,但是它沒有顯示出來,
document.getElementById('btn').addEventListener('click', function() {
document.querySelector('.overlaycontainer').style.display = "flex";
})
通過添加這些 CSS 行來定位您的.overlaycontainer
,它將顯示出來。
position: absolute;
left: 0;
top: 0;
一個元素必須有一個高度和寬度才能顯示出來,這並不意味着我們總是必須為元素設置寬度和高度。 發生的事情是,您將.overlaycontainer
的高度設置為 100% 並且它沒有接受它,因此它的父級必須具有固定寬度才能工作。
通常覆蓋被定位。
position
屬性用於操縱元素的位置。 position:absolute
總是引用其父級,需要設置為position:relative
。
當您更改 left 或 top 值時, .overlaycontainer
的位置.overlaycontainer
發生變化。 如果您給出position: relative
對於疊加層的父元素或任何祖父母元素(在必須的情況下),它將在該方面更改其位置。 如果元素的任何祖先沒有position: relative
,在我們的情況下,元素將相對於主體。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.