我希望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出现的时间晚。

最佳答案

在#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;
}

如果您的目标是掩盖整个屏幕,则不必在#modal上向左,向右和顶部。这只会导致将模态放置在错误的位置。


不太确定您要在这里实现什么,但是我建议删除/注释掉显示内容:在调试/创建新组件/块时,首先不要这样做

关于html - CSS模式后退不会占用整个屏幕,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57470226/

10-11 13:15