【发布时间】:2012-03-07 23:15:15
【问题描述】:
<div style="display: inline-block; margin: 0 auto;">
<input id="abc" type="button" value="button" />
</div>
我尝试使用上面的代码将宽度设置为等于它的内容,然后将其居中设置为 margin: 0 auto;
但它在任何浏览器上都不适用于我。有什么建议吗?
顺便说一句,当我设置宽度属性时,它工作正常。
<div style="width: 10em; margin: 0 auto;">
<input id="abc" type="button" value="button" />
</div>
【问题讨论】:
-
根据@Xander 评论,如果没有宽度,DIV 将扩展到其容器的 100%。因此,“margin:0 auto”不太可能显示任何效果,因为您需要的宽度小于 100%。如果您只是想使按钮居中,为什么不将文本居中对齐? IE。 DIV 样式中的“text-align:center”。我认为 INPUT 标签自然是内联的,所以它应该在 DIV> 内居中
-
@Fozzyuw,无论是否需要宽度,当我们设置 display: inline-block 时,宽度将设置为等于其内容。
-
您的第二个示例有效,因为您删除了
display: inline-block。当您再次添加它时,设置宽度没有效果。见jsfiddle.net/anEvF -
如果你偶然发现了这个帖子,但没有一个答案适合你,请检查你的 div 是否浮动。
margin: auto不能很好地与float配合使用。