Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在页面中央保留div?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在页面中央保留div?

Javascript 如何在页面中央保留div?,javascript,jquery,Javascript,Jquery,我正在使用jQuery创建一个“对话框”,它应该在页面顶部和页面中心(垂直和水平)弹出。我应该如何让它保持在页面的中心位置(即使用户调整大小或滚动?我会使用 position: fixed; top: 50%; left: 50%; margin-left: -(dialogwidth/2); margin-top: -(dialogheight/2); 但使用此解决方案,并且浏览器视口大小小于对话框的大小,对话框的顶部和左侧部分将无法访问,因为它们位于视口之外。 因此,您必须决定它是否适合您

我正在使用jQuery创建一个“对话框”,它应该在页面顶部和页面中心(垂直和水平)弹出。我应该如何让它保持在页面的中心位置(即使用户调整大小或滚动?

我会使用

position: fixed;
top: 50%;
left: 50%;
margin-left: -(dialogwidth/2);
margin-top: -(dialogheight/2);
但使用此解决方案,并且浏览器视口大小小于对话框的大小,对话框的顶部和左侧部分将无法访问,因为它们位于视口之外。 因此,您必须决定它是否适合您的对话框大小

(CSS还不知道如何计算。因此,那边的小数学必须由您立即完成。因此,您的对话框必须是您必须知道的固定大小。)

编辑:

哦,是的,如果您也想为IE6提供您的对话,您应该这样做:

#dialog { position: absolute; }
#dialog[id] { position: fixed; }

由于IE6不支持固定位置,也不支持属性选择器,因此IE6将是唯一将位置设置为绝对位置的设备。(这将只影响滚动行为。绝对停留在它的位置在页面和固定停留在它的位置在浏览器中。其余的是相似的。)< /P> < P>在中间放置一个DIV,我总是放置边距:0自动。但它不能是浮动元素,在IE中,我总是需要在其周围放置一个div,然后给它属性文本align:center,以便内部div水平居中

如果知道元素的偏移尺寸(宽度/高度+填充),可以使用以下CSS:

elementContainerSelector {
    position: fixed; /* You'll of course need to handle browsers that don't support fixed positioning */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

elementSelector {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -[half of offset height]px 0 0 -[half of offset width]px;
}
Hurix的答案也很有效,请记住答案中的注意事项。

查看这篇文章

#mydiv {
   background-color:#F3F3F3;
   border:1px solid #CCCCCC;
   height:18em;
   left:50%;
   margin-left:-15em;
   margin-top:-9em;
   position:absolute;
   top:50%;
   width:30em;
}
这就是他们使用的CSS,我已经在多个浏览器中进行了测试


您会注意到,左边距是宽度的负一半,上边距是高度的负一半。这或多或少地考虑了定心,将其绝对定位在50%的顶部和左侧。

保持左边距:自动,右边距:自动。

定位不固定会导致IE6出现问题吗?