在我被问到这个问题很久之后,我意识到我已经回答了很久,但是在我被这个问题短暂地绊倒之后我就落到了这里,并且目前的答案都没有正确 .
这是正确的答案:
body {
position: relative;
}
而已!现在,您的元素将相对于
而不是视口定位 .我不打扰 position: fixed ,因为它的浏览器支持仍然不稳定 . iOS 5之前的Safari根本不支持它 .
请注意,
元素将涵盖 's border-box (box + padding + border), but it won' t覆盖其边距 . 通过在
(例如 top: -20px )上设置负位置或通过删除 的边距来进行补偿 .
我还建议将
设置为 height: 100% ,以确保您不会在较短的页面上使用部分屏蔽的视口 .从先前的答案中获得两个有效点 . 正如Ben Blank所说,你可以丢失 width 和 height 声明,而是定位所有四个角 . 并且mercator是正确的,你应该使用ID而不是类来表示这样一个重要的单个元素 .
这留下了以下推荐的完整CSS:
body {
position: relative;
margin: 0;
}
#screenMask {
position: absolute;
left: 0; right: 0;
top: 0; bottom: 0;
z-index: 1000;
background-color: #000;
opacity: 0.7;
filter: alpha(opacity=70);
visibility: hidden;
}
和HTML:
我希望这有助于其他人!