div水平居中图像

jos*_*011 207 html css

我有img一个div(class="top_image"),我希望这个图像正好在div的中间,但我尝试的任何东西都没有...

谢谢你的帮助!

Dyi*_*yin 516

此处发布的每个解决方案都假定您知道您的维度img,这不是常见的情况.而且,将尺寸种植到溶液中是痛苦的.

只需设置:

/* for the img inside your div */
display: block;
margin-left: auto;
margin-right: auto;
Run Code Online (Sandbox Code Playgroud)

要么

/* for the img inside your div */
display: block;
margin: 0 auto;
Run Code Online (Sandbox Code Playgroud)

就这样.

请注意,您还必须min-width为外部设置初始值div.

  • 注意:仅当图像的宽度小于父div时才有效. (23认同)
  • 完美答案:此解决方案也用于[Bootstrap](https://github.com/twbs/bootstrap/blob/master/less/mixins/image.less). (6认同)
  • 在相对定位的"<div>"内部是否有绝对定位图像的解决方案? (2认同)
  • 如果图像大于div则不起作用 (2认同)

Max*_*bre 26

text-align:center仅适用于水平居中.要使它处于完整的中心,垂直和水平,您可以执行以下操作:

div
{
    position: relative;
}
div img
{
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: [-50% of your image's width];
    margin-top: [-50% of your image's height];
}
Run Code Online (Sandbox Code Playgroud)


小智 9

W3C提供了一个非常简单和优雅的解决方案.只需使用保证金:0自动声明如下:

.top_image img { margin:0 auto; }
Run Code Online (Sandbox Code Playgroud)

来自W3C的更多信息和示例.


Ads*_*Ads 8

<div class="outer">
    <div class="inner">
        <img src="http://1.bp.blogspot.com/_74so2YIdYpM/TEd09Hqrm6I/AAAAAAAAApY/rwGCm5_Tawg/s320/tall+copy.jpg" alt="tall image" />
    </div>
</div>
<hr />
<div class="outer">
    <div class="inner">
        <img src="http://www.5150studios.com.au/wp-content/uploads/2012/04/wide.jpg" alt="wide image" />
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

img
{
    max-width: 100%;
    max-height: 100%;
    display: block;
    margin: auto auto;
}

.outer
{
    border: 1px solid #888;
    width: 100px;
    height: 100px;
}

.inner
{
    display:table-cell;
    height: 100px;
    width: 100px;
    vertical-align: middle;
}
Run Code Online (Sandbox Code Playgroud)


Jay*_*Jay 7

我认为最好为div做文本对齐中心,让图像处理高度.只需指定div的顶部和底部填充,即可在图像和div之间留出空间.看看这个例子:http://jsfiddle.net/Tv9mG/


小智 5

我希望这会有所帮助:

.top_image img{
display: block;
margin: 0 auto;
}
Run Code Online (Sandbox Code Playgroud)

  • 请告诉你你在这里做了什么。解释。 (3认同)