我想在视口中间将一个元素(DIV,模态/对话框)集中,无论页面大小如何。
这个想法是对话框总是出现在当前视图端口的中间,因此无论页面大小如何,用户都可以看到它。就我而言,我有一个很长的页面,上面有很多滚动,如果用户在页面的底部,并且对话框出现在页面中间,则用户看不到它,因为它不在他的视图中。
我的HTML网站在iframe中运行,这使任务更加困难。
我只能使用CSS进行操作?
遵循CSS
.center{
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
固定的位置将确保其相对于视口。左和最高的50%将移动元素的顶部并左移至中心。您希望它位于绝对中心,可以通过转换来完成:转换(-50%,-50%);
尝试此片段。
.modal{
width: 200px;
height: 150px;
border: 1px solid black;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
<div class="modal">
</div>
好吧,在您编辑了问题并提到该页面是在iframe
中,我至少可以说,不可能将iframe
的元素放在浏览器的当前视口上。该元素最全局的上下文是iframe
本身,它在其嵌入的任何内容中都没有有关。