我希望CSS中的模态背景占据整个屏幕(即,除了模态内容本身之外,整个屏幕都被遮盖了)。我认为这可能与我根据vh和vw指定其他div的宽度和高度有关。这是我的代码:
#modal {
z-index: 1;
position: fixed;
left: 40%;
right: 30%;
top: 10%;
background-color: rgba(0, 0, 0, 0.4);
width: 100vw;
height: 100vh;
}
#modal button {
height: 40px;
font: Hind Siliguri;
font-weight: bold;
border: 2px solid white;
border-radius: 5px;
margin: 5px;
}
<span id="modal">
<h2>Choose a word: </h2>
<button id = "choice1">Word1</button><button id= "choice2">Word2</button><button id = "choice3">Word3</button>
</span>
以下是我根据vw / vh分配尺寸的其他元素:
#verbal-hint-container{
margin-right: 50%;
height: 30vh;
width: 40vw;
background-color: #C3D898;
border: 5px solid #160F29;
border-radius: 2px;
}
verbal-hint-container只是一个包含实例化消息的div(来自胡子库)。
我的直觉是基于vw / vh分配其他元素尺寸会干扰使一个元素跨越整个屏幕吗?有没有解决方法?如果重要的话,我的模态的css + html出现在那些文件中的时间要比所有其他元素的css + html出现的时间晚。
答案 0 :(得分:0)
使用Inspect元素为我们提供了一种方法来查找引导程序正在使用的类。
尝试将以下CSS添加到您的页面:
.reveal-modal-bg {
width: auto !important;
position: fixed;
background: rgba(0, 0, 0, 0.45);
display: none;
left: 0;
right: 0;
top: 0;
bottom:0;
z-index: 40;
}
添加此代码应确保背景完全覆盖整个页面。
答案 1 :(得分:0)
我不知道您的问题是否正确。 但是,这是一个示例,其中模式背景占据了屏幕的100%。 我希望这能帮到您。
var modal = document.getElementById("myModal");
var btn = document.getElementById("myBtn");
var span = document.getElementsByClassName("close")[0];
btn.onclick = function() {
modal.style.display = "block";
}
span.onclick = function() {
modal.style.display = "none";
}
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
/* The Modal (background) */
.modal {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 1; /* Sit on top */
padding-top: 100px; /* Location of the box */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}
/* Modal Content */
.modal-content {
background-color: #fefefe;
margin: auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
}
/* The Close Button */
.close {
color: #aaaaaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>Modal Example</h2>
<button id="myBtn">Open Modal</button>
<div id="myModal" class="modal">
<div class="modal-content">
<span class="close">×</span>
<p>Some text in the Modal..</p>
</div>
</div>
</body>
</html>
答案 2 :(得分:0)
在 #modal 上,高度和宽度使用的是 = 而不是: ,这就是为什么它无法正常工作。将您的 #modal CSS更改为此:
#modal {
z-index: 1;
position: fixed;
left: 40%;
right: 30%;
top: 10%;
display: none;
background-color: rgb(0, 0, 0);
background-color: rgba(0, 0, 0, 0.4);
width: 100vw;
height: 100vh;
}
left , right 和 top 掩盖整个屏幕。这只会导致将模态放置在错误的位置。
不太确定要在这里实现什么,但是我建议在调试/创建新组件/块时先删除/注释掉显示内容:无