带显示的div:内联块边距0自动不居中

etl*_*lds 69 html css

<div style="display: inline-block; margin: 0 auto;">
    <input id="abc" type="button" value="button" />
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试使用上面的代码来设置等于它的内容的宽度,然后以margin为中心:0 auto;

但它在任何浏览器上都不适合我.有什么建议吗?

顺便说一句,当我设置width属性时,它工作正常.

<div style="width: 10em; margin: 0 auto;">
    <input id="abc" type="button" value="button" />
</div>
Run Code Online (Sandbox Code Playgroud)

col*_*sso 144

显示:表; 将它定位在中心:

CSS:

  .button{
    display: table;
    margin: 0 auto;
    }
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="button">
<input id="abc" type="button" value="button" />
< /div>
Run Code Online (Sandbox Code Playgroud)

注意:使用内联样式是一种不好的做法.

  • @kapa我知道这是一个陈旧的评论,但我可能认为这是积极的.:) (11认同)
  • http://www.quirksmode.org/css/display.html#table这里有很好的解释 (4认同)

Rok*_*alj 51

既然你要求DIV inline-block,那text-align: center;就是答案.

<div style="text-align: center;">
<div style="display: inline-block; text-align: left;">
    <input id="abc" type="button" value="button" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • `text-align:center;`将div的内联*内容*居中,而不是div本身. (13认同)
  • 正是我需要的.谢谢. (2认同)
  • 注意:这个讨论已经过时了.自编辑后,答案包括一个包装div,使内部原始div居中.所以这就是他想要的. (2认同)