0

如何<img>在包含中居中<div>

平时margin-left: auto; margin-right: auto;不行。

图像可以比容器大,并由max-width和水平或垂直缩放max-height

带有以下代码的 jsfiddle:http: //jsfiddle.net/9ShGj/1/

HTML:

<div class="container">
   <img src="http://www.yensa.com/fat/fat-dude10.jpg" />
</div>
<div class="container">
   <img src="http://oi43.tinypic.com/bje2wn.jpg" />
</div>

CSS:

.container {
 width: 200px;
 height: 200px;
 background: rgb(120, 120, 120);
 border: 1px solid red;
 margin: 5px;
}

.container img {
 max-width: 200px;
 max-height: 200px;
 margin-left: auto;
 margin-right: auto;
 vertical-align: middle;
}
4

4 回答 4

5

你可以这样写:

CSS

div{
    width:200px;
    height:200px;
    border:1px solid red;
    text-align:center;
    line-height:200px;
}

img{
    vertical-align:middle;
}

HTML

<div>
    <img src="http://dummyimage.com/150x150/000/fff&text=dummy" >
</div>

检查这个http://jsfiddle.net/dP89y/

于 2012-12-07T06:09:58.080 回答
1

图像不是块级元素,因此需要将其转换为块级元素

所以在你的css中添加

.container img {
 display:block                /*ADD this line*/
 max-width: 200px;
 max-height: 200px;
 margin-left: auto;
 margin-right: auto;
 vertical-align: middle;
}

您还需要考虑以下几点

Doctype : check whether it is not in quirks mode.

Width of inner div or image must me less that width of parent div.

做检查这些事情你会得到你的答案......一切顺利。

于 2012-12-07T06:11:44.037 回答
0

除非您使 img 成为块级元素,否则您应该能够将其居中:

.container { text-align: center; }
于 2012-12-07T06:11:22.233 回答
0

更新以下 CSS...vertical-align:middle; text-align:center

   .container {
        width: 200px;
        height: 200px;
        background: rgb(120, 120, 120);
        border: 1px solid red;
        margin: 5px;
        vertical-align:middle; text-align:center //add this
    }
于 2012-12-07T06:14:07.807 回答