【发布时间】:2017-02-04 11:24:46
【问题描述】:
当我尝试为其分配边距(左右)自动时,为什么定义了自动宽度的元素没有居中?除了使用自动宽度居中元素的边距之外,还有什么技巧吗?
代码如下:
<div style="width:auto; margin:0 auto 50px;">
<a href="#">Dummy link</a>
</div>
【问题讨论】:
当我尝试为其分配边距(左右)自动时,为什么定义了自动宽度的元素没有居中?除了使用自动宽度居中元素的边距之外,还有什么技巧吗?
代码如下:
<div style="width:auto; margin:0 auto 50px;">
<a href="#">Dummy link</a>
</div>
【问题讨论】:
如果有的话,你可以将text-align:center 给父 div。
要使用margin-auto,我们需要指定 div 的宽度。 auto 将占用 div 和 p 标签的 100% 宽度。
如果你能找到并给出 div 的特定宽度,否则基于你的浏览器支持你使用属性 width:max-content; ,阅读它here
您可以为此使用浏览器破解:
width: intrinsic; /* Safari/WebKit uses a non-standard name */
width: -moz-max-content; /* Firefox/Gecko */
width: -webkit-max-content; /* Chrome */
示例 sn-p:
<div style="background:red;margin:auto;width:intrinsic;width:-moz-max-content;width:-webkit-max-content;">
<a href="#">Dummy link</a>
</div>
【讨论】:
display:inline-block, 赋予您的 div,然后它的宽度不会超过其内容的宽度。这就是你想要的吗?
将display: inline-block 添加到您当前的<div>,并从中删除width:auto。然后,创建一个外部<div>(如果您还没有),并将text-align: center 添加到其中。
<div style="text-align:center;">
<div style="display:inline-block; margin:0 auto 50px;">
<a href="#">Dummy link</a>
</div>
</div>
JSFiddle: https://jsfiddle.net/uLp7qj3e/
【讨论】: