为啥 margin:auto 不工作?

Posted

技术标签:

【中文标题】为啥 margin:auto 不工作?【英文标题】:why isn't margin:auto working?为什么 margin:auto 不工作? 【发布时间】:2014-05-16 00:24:06 【问题描述】:

只是试图使我使用 html 放置的图像居中。只是尝试使用 Margin:auto 但它不起作用?

代码如下:

#indexheader 
    margin: 0 auto;
    margin-top:5%;
    width:190%;
    height: 190%;

【问题讨论】:

能否也请您分享一下 HTML? Why can't I center with margin: 0 auto?的可能重复 【参考方案1】:

假设您想水平居中,您只需要在父元素上设置宽度并在图像本身上设置display:block。这是一个简单的例子:

JSFiddle

我不确定当宽度大于父级的 100% 时居中意味着什么。需要考虑的事情。

【讨论】:

【参考方案2】:

如果您明确将宽度设置为 190%,则不一定需要 margin: auto。您可以将左边距设置为 -45%。

【讨论】:

这只是对一个非常具体和不常见的用例的修复。【参考方案3】:

你的#indexheader 是否在另一个 div 元素中?如果是这样,那将导致它仅在元素内居中。

您是否对元素进行了任何 css 编码以使其不居中?比如一个位置:固定;?

此外,如果您将图像放置在“indexheader”中,它可能不会居中,因为您将框居中而不是图像居中。尝试将 id 应用于 html 编码中的图像元素并将其居中。

这是一个相当模糊的问题,因为您发布的内容应该居中,但没有看到您的任何其他代码,还有许多其他元素可能会影响它。

您总是可以在您的 html 中尝试使用内联语句,例如 align="center" 并尝试一下

【讨论】:

【参考方案4】:

如果您的元素是内联块,我相信它不会以“margin: 0 auto;”为中心您可以尝试添加:

display: block;

看看是否可行。

【讨论】:

【参考方案5】:

这是小提琴http://jsfiddle.net/XF4JM/

应该居中图像。关键是使图像成为一个块并将margin-left和margin-right应用于auto。希望这会有所帮助

img 
display:block;
margin-left:auto;
margin-right:auto;    

【讨论】:

以上是关于为啥 margin:auto 不工作?的主要内容,如果未能解决你的问题,请参考以下文章

为啥将“margin:0 auto”添加到滑块菜单会破坏它?

为啥 CSS 中的“margin: 0 auto”+“display:block”命令使元素居中? [复制]

“margin: 0 auto;”究竟需要啥?去工作?

为啥保证金:自动;不工作? [复制]

`margin:auto;` 不适用于内联块元素

css中margin:auto什么意思?margin:auto属性的用法详解