Css 自动边距不';t在页面中居中显示图像
在图像中,图像未居中。为什么?我的浏览器是Windows7上的Google Chrome v10,而不是IECss 自动边距不';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)和继承,将剩余空间的一半分配给左边的边距,另一半分配给右边的
<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;经过一些测试发现,如果您添加到元素中的类名与元素同名,那么这将不起作用。这是有效的,我不知道为什么。你能解释一下吗?我以前从未用过这个,但现在它对我有用了。