以自动保证金为中心的div是否需要宽度?

时间:2011-10-25 11:26:23

标签: html css

我尝试使用margin来居中我的div:像这样自动:

#main-container #control-panel {margin: 10px auto;}

但它仍然与左边对齐。我发现我必须为div指定一个宽度,以使它居中:

#main-container #control-panel {width: 300px; margin: 10px auto;}

那么,以div为中心需要宽度吗?我认为div的宽度应该由其内部内容自动修改? (在这种情况下,我在控制面板div中有一个按钮)

结果在最新的Chrome下测试。

5 个答案:

答案 0 :(得分:6)

是的,这是必要的。

div宽度的默认值为auto,这意味着它会尝试占用所有可用空间。由于两侧没有留下边距,自动边距将为零。

答案 1 :(得分:3)

是的,如果您希望他进入define width

,您需要center到您的div

但是如果您不想要固定宽度,那么只需在父div&中定义text-align:center即可。像这样定义display:inline-block

.parent{
 text-align:center;
} 

.child{
 display:inline-block;
 text-align:left;
}

检查此http://jsfiddle.net/sandeep/HzuYv/

答案 2 :(得分:2)

默认情况下,

div元素始终为auto(父容器的100%宽)。你想把这个元素居中,你设置margin:0 auto,它会居中但你不会注意到它,因为它是100%宽。

这就是为什么看起来它没有居中:)

答案 3 :(得分:1)

是的,使用margin-left/margin-right:auto;时,您必须指定div的宽度。

如果没有宽度,div自然具有auto宽度,因此它居中对齐,但您无法判断它是否填充了容器。

答案 4 :(得分:-1)

是宽度是必要的,试试这个:

#control-panel { width=970px;margin: 0 auto;}