我正在寻找一种简单的方法来在DIV中右对齐img,即垂直 - 中间和水平 - 右对齐,如下所示:
我尝试在IMG样式中使用vertical-align:middle和float:right,但似乎无法一起使用..
<div style='height: 300px; width: 300px'>
<img src= 'http://www.w3schools.com/tags/smiley.gif' style='vertical-align: middle; float: right;'/>
</div>
答案 0 :(得分:9)
有很多方法可以做到这一点。如果图像及其容器高度已知,则非常容易,否则会很棘手。选择适合您需求的解决方案:
方法1:行高,文本对齐和垂直对齐
#div1 {
width: 300px;
height: 300px;
background-color: blue;
line-height: 300px;
text-align: right;
}
#div1 img {
vertical-align: middle;
}
<div id="div1">
<img src="http://dummyimage.com/100x50/fc0/000000.png">​
</div>
方法2:绝对/相对定位,已知图像高度
#div1 {
width: 300px;
height: 300px;
background-color: blue;
position: relative;
}
#div1 img {
position: absolute;
right: 0;
top: 50%;
margin-top: -25px; /* -(image_height/2) */
}
<div id="div1">
<img src="http://dummyimage.com/100x50/fc0/000000.png">
</div>
方法3:已知绝对/相对定位,图像和容器高度
#div1 {
width: 300px;
height: 300px;
background-color: blue;
}
#div1 img {
float: right;
position: relative;
top: 125px; /* (div_height-image_height)/2 */
}
<div id="div1">
<img src="http://dummyimage.com/100x50/fc0/000000.png">
</div>
<强> jsFiddle 强>
答案 1 :(得分:0)
<DIV style='height: 300px; width: 300px;border:1px solid #ff0000;display:table-cell;vertical-align: middle'>
<img src= 'http://www.w3schools.com/tags/smiley.gif' style='float:right;'/>
</DIV>
顺便说一下,你正在使用&#34; styles =&#34;在您的图片标记中。这是无效的。
答案 2 :(得分:0)
display: table-cell
技巧如果只是一个漂浮在div中的图像,效果很好。但是如果你有其他元素拥挤图像,例如<p>
,他们将倾向于在浏览器调整图像大小时垂直推动图像。
http://www.brunildo.org/test/img_center.html提供了一些关于跨浏览器支持和早期浏览器版本黑客的好信息,以便在IE的破箱模型中正确显示图像。