Css 自动边距不';t在页面中居中显示图像

Css 自动边距不';t在页面中居中显示图像,css,google-chrome,margin,centering,Css,Google Chrome,Margin,Centering,在图像中,图像未居中。为什么?我的浏览器是Windows7上的Google Chrome v10,而不是IE <img src="/img/logo.png" style="margin:0px auto;"/> 添加显示:块就可以了。默认情况下,图像是内联的 要澄清的是,块元素的默认宽度是自动,这当然会填充包含元素的整个可用宽度 通过将边距设置为auto,浏览器在某些情况下(例如早期版本的IE、Gecko、Webkit)和继承,将剩余空间的一半分配给左边的边距,另一半分配给右边的

在图像中,图像未居中。为什么?我的浏览器是Windows7上的Google Chrome v10,而不是IE

<img src="/img/logo.png" style="margin:0px auto;"/>

添加
显示:块就可以了。默认情况下,图像是内联的

要澄清的是,
元素的默认宽度是
自动
,这当然会填充包含元素的整个可用宽度

通过将边距设置为
auto
,浏览器在某些情况下(例如早期版本的IE、Gecko、Webkit)和继承,将剩余空间的一半分配给
左边的边距
,另一半分配给
右边的边距
,元素的位置为
相对将防止
边距:0自动顶部
右侧
底部
、和
左侧
,代码>也会从工作中删除


将元件设置为
位置:静态(默认值)可能会在这些情况下修复它。通常,具有指定宽度的块级元素将考虑
边距:0 auto
使用相对定位或静态定位。

在我的例子中,问题是我设置了最小和最大宽度,而没有宽度本身。

每当我们不添加宽度和
边距:自动
时,我想它不会起作用。这是我的经验。宽度给出了它需要提供相等边距的确切位置。

有一种替代
左边距的方法:自动;右边距:自动
边距:0自动位置的代码>绝对值就是这样:
您将元素的左位置设置为50%(
left:50%;
),但这将无法使其正确居中。为了使元素正确居中,您需要为其提供宽度减半的边距,以便使元素完全居中


下面是一个示例:

您可以使用
显示:表格将自动宽度div居中

div{
margin: 0px auto;
float: none;
display: table;
}

对于引导按钮:

display: table; 
margin: 0 auto;

将其放入正文的css中: 背景#3D668F; 然后添加: 显示:块; 保证金:自动;
我记得有一天我花了很多时间试图将一个div居中,使用
边距:0 auto

我在上面有显示:内联块,当我移除它时,div正确居中


正如罗斯指出的,它对内联元素不起作用。

img{display:flex;max-width:80%;margin:auto;}

这对我有用。在这种情况下,还可以使用display:table。 此外,如果您不想坚持这种方法,可以使用以下方法:


img{位置:相对;左侧:50%;}

+1表示右侧。如果您详细说明了
margin:auto
在流程中居中项目所需的内容,这将是一个很好的答案。(
显示:块
显示:表
位置:静态
位置:相对
等)@Phrogz同意;添加了一些解释。阅读本文的人可能也会发现添加“浮动”none很有用,因为任何其他类型的浮动都会破坏你的自动保证金。但它仍然没有居中。它只是水平居中。我想将其垂直居中,但即使我将
0px auto
更改为仅
auto
,它仍然不起作用。当然不起作用,自动边距是一种更老的内容居中“黑客”。如果需要精确对齐,请使用flexbox:
display:flex;对齐项目:居中;对齐内容:居中
,现在您的内容水平和垂直居中。或者将其移动到
对齐自:居中;自我证明:在内容本身上居中
。要重述:元素必须是
位置:static
,有一个固定的
宽度:
设置并成为
显示:block
元素这对我来说也是宽度问题-bootstrap自动设置我的div以使用100%可用
边距:0 auto
在相对定位的元素上工作得很好,只要它们是没有浮动和指定宽度的块元素…我想这是讽刺。如果你修改你的答案,使它不是不准确的,我会删除否决票。我已经写了将近15年的CSS,不记得自动边距不能水平居中相对定位的固定宽度元素-尽管其他属性,如
float
display
可以改变这种行为。测试一个样式类,我发现这不是工作边距:0 auto;经过一些测试发现,如果您添加到元素中的类名与元素同名,那么这将不起作用。这是有效的,我不知道为什么。你能解释一下吗?我以前从未用过这个,但现在它对我有用了。