我去了MSDN和Google Coding,他们都给出了同样的例子。他们说你可以把这样的div放在中心,但它不起作用。谁知道为什么?我也想知道以div为中心的最佳方法。我试着做margin: 0 auto
;它不起作用。
答案 0 :(得分:3)
必须为div指定一个宽度才能使边距技巧起作用:link
<div style='width:800px;margin:0 auto;'>Div Middle</div>
答案 1 :(得分:2)
您使用的浏览器是什么?你有任何示例代码吗?也许是gist.github.com或jsfiddle.net。
如果我推断你想要什么,你需要做一些事情。
width
margin: 0 auto;
以下示例代码来自:http://jsfiddle.net/sukima/5RQpw
<div id="parent">
<!-- Must have a container div -->
<div id="child">
This is a test
</div>
</div>
#parent {
background-color: green;
/* Center's text not div. Can be here or in child. */
/* text-align: center; */
}
#child {
background-color: red;
width: 80px; /* Required. Develop your own calculation. */
margin: 0 auto; /* Centers the div */
}
答案 2 :(得分:2)
我看到每个人基本上都发布了相同的内容,但他们都在制定规则,它必须在一个包含的分区内(fyi,<body>
完全可以作为'容器',它不是 是一个部门)或必须有一个设定的宽度。显然,如果你没有设置宽度,那么边距将没有效果,因为它会扩展到整个宽度(因此没有边距区域)。
如果你没有发布你正在使用的实际HTML和CSS,我们根本无法帮助你,因为我们不知道发生了什么。根据标准,margin: 0 auto
应该有效。如上所述,即使您没有指定宽度,仍然会应用'auto',并且仅当分区扩展到整个宽度时,仅计算为0,因此没有填充边距。
唯一想到的是你正在移除块级样式。也许您将其定义为display: inline
?内联元素不能有边距,而是会关注父元素的text-align属性。此外,如果你以任何方式漂浮分区,你显然不能说它居中,因为漂浮点是将它推向左边或右边(不是中心)。我们可以继续猜测,但实际上你应该改进你的问题。要添加的另一个注意事项:您不能将margin: 0 auto
与固定位置元素一起使用。
答案 3 :(得分:0)
margin: 0; /* reset */
margin-left: auto;
margin-right: auto;
text-align: center; /* For IE */
您需要text-align: left
后面的内部部分。
答案 4 :(得分:0)
如果你不知道你的盒子的大小,可以使用shrink wrapping techniques让你仍然使用margin:0 auto
。 (在我链接的教程中,他们只展示了display:inline
和display:table
所做的一切。)
编辑:我的不好。他们仅在margin:0 auto
收缩包装的演示中使用了display:table
。
答案 5 :(得分:0)
请尝试以下。
#content
{
width: 740px;
clear: both;
padding: 0;
margin: 0 auto;
}
答案 6 :(得分:0)
你需要IE8及以上版本(我在9上试过这个)。在允许您运行网页之前,IE抱怨运行活动的x控件。
<html>
<head>
<style>
#oDiv
{
background-color: #CFCFCF;
position: absolute;
left:expression(document.body.clientWidth/2-oDiv.offsetWidth/2);
top:expression(document.body.clientHeight/2-oDiv.offsetHeight/2);
}
</style>
</head>
<body>
<div id="oDiv">Example DIV</div>
</body>
</html>
问题当然是,这与所有浏览器都不兼容。使用CSS严格地垂直和水平居中div更复杂,但可以完成。 (这有助于在正确的地方使用
。