2011-11-27 121 views
5

我弹出一个包含ASP.NET窗体的窗体,单击链接“请求信息”并出现窗体。CSS垂直和水平中心Div

但是,具有“请求信息”链接以触发弹出窗口的页面有很多内容,因此需要滚动才能看到链接。

我需要div总是居中,如果用户滚动阅读内容,否则如果他们不滚动弹出窗口仍然出现在屏幕上居中。

div被绝对定位,整个页面宽度为960px,保证金设置为0 auto

回答

16

如果div有一个固定的宽度和高度用途: (如果width = 120像素的高度= 80px)

position: fixed; 
top: 50%; 
left: 50%; 
margin-left: -60px; /* negative half of the width */ 
margin-top: -40px; /* negative half of the height */ 
+1

这将div放在右下角,而不是居中。你需要对利润进行负数。 – Godwin

+0

他们现在是负面的... – ninov

0

使用位置:固定;为此,在顶部,左侧,右侧和底部使用0,并给div一个显示:table-cell;另外,像这样,设置text-align:center;和vertical-align:middle;将使内部的所有内容完全出现在中间,而不会像像负边界那样像素精确的黑客入侵。

+0

好了,什么值左侧和顶部? – Filth

+0

@JordyVialoux更新了答案。 – 2011-11-27 22:16:58

0

如果您的弹出div有固定的大小,那么你可以使用这个CSS:

position: fixed; 
left: 0; 
top: 0; 
right: 0; 
bottom: 0; 
margin: auto; /* this requires a fixed size */ 

否则,你必须摆弄display:table-cell;等等。

0

这是你想要做的吗? http://jsfiddle.net/Hrwf8/

此处的关键是将左侧和顶部样式设置为50%,并将margin-left和top设置为div的宽度和高度的一半的负值。这当然要求你有一个固定的大小为你的div。