2013-08-18 26 views
0

无论用户是否调整网页大小,我都需要div始终位于页面的中心位置。将div设置为居中页

我试过使用: margin:auto; margin:0 auto; margin-left:auto;自动保证金;

但这三者都没有工作。

HTML:

<div id="grayinnerbackground"> 
</div> 

CSS:

div#grayinnerbackground { 
      margin: auto; 
      width:1000px; 
      background-color: #D9D9D9; 
      height: 100%; 
      position: fixed; 
      z-index: -1; 
} 

这里是什么我谈论的例子的小提琴。 http://jsfiddle.net/ymvDJ/

谢谢。

回答

0

删除position: fixed,改变width50px,并确保你在margin: autoauto之前有0

更新:

要让DIV高达窗口,一定要设置bodyhtmlheight: 100%;太:

body, html { 
    height: 100%: 
} 

Updated jsfiddle again

+0

唯一的事情是我需要它固定的,需要的宽度和需要页面高度的它100%。 ..另外,我已经尝试了保证金:0汽车;没事了。 – James

+0

查看我的更新答案,了解如何让div伸展到页面底部。 – joshuadelange

0

这此HTML :

<div id="grayinnerbackground"> 
    foo 
</div> 

CSS:

div#grayinnerbackground { 
      margin: auto; 
      width: 50px; 
      background-color: #ccc; 
      height: 100%; 
} 

我不完全知道为什么它没有工作,直到我把文本到DIV,现在检查的东西。

UPDATE

叹了口气,好吧,我累了。如果div是空的,并且您的高度为100%,则在此情况下,它将是其父项的高度的100%,即<body>。由于没有其他内容,因此<body>的高度为0。给<div>一个绝对的高度,它会弹出在:

div#grayinnerbackground { 
      margin: auto; 
      width: 50px; 
      background-color: #ccc; 
      height: 10px; 
} 
+1

当你将文本放在div中时它会工作,因为文本给了div实际显示所需的高度。这也可以通过给div一个固定的高度来实现。 – joshuadelange

+1

你是对的,先生。我不应该在一对夫妇啤酒之后编写代码:) –

1

如果想要的位置是固定的,添加这些规则并放弃通常的保证金诡计:

left: 50%; 
margin-left: -25px; // half the width of your element 

见这里:http://jsfiddle.net/8DfnG/2/

+0

这个工作完美,除了我用-25px。我仍在看每个人的建议,以找到一个更清洁的方式,但现在我很高兴。非常感谢杰夫曼和你的其他人。 – James

+0

注意:使用固定位置可能会在以后真的让事情变得困难。取决于你想要的,你可能想重新考虑一种不同的方法。 – joshuadelange

0

用途:

position: relative 

如果仍然不工作,你可能需要增加这个问题,以及:

display: block; 

“的位置是:固定”意味着无论它停留在ax和y坐标上。