CSS img align:如何在DIV中设置img中右对齐

Sim*_*mon 4 html css image alignment vertical-alignment

我正在寻找一种简单的方法来在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>
Run Code Online (Sandbox Code Playgroud)

Sal*_*n A 9

有很多方法可以做到这一点.如果图像及其容器高度已知,则非常容易,否则会很棘手.选择适合您需求的解决方案:

方法1:行高,文本对齐和垂直对齐

#div1 {
  width: 300px;
  height: 300px;
  background-color: blue;
  line-height: 300px;
  text-align: right;
}
#div1 img {
  vertical-align: middle;
}
Run Code Online (Sandbox Code Playgroud)
<div id="div1">
  <img src="http://dummyimage.com/100x50/fc0/000000.png">&#8203;
</div>
Run Code Online (Sandbox Code Playgroud)

方法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) */
}
Run Code Online (Sandbox Code Playgroud)
<div id="div1">
  <img src="http://dummyimage.com/100x50/fc0/000000.png">
</div>
Run Code Online (Sandbox Code Playgroud)

方法3:已知绝对/相对定位,图像和容器高度

#div1 {
  width: 300px;
  height: 300px;
  background-color: blue;
}
#div1 img {
  float: right;
  position: relative;
  top: 125px; /* (div_height-image_height)/2 */
}
Run Code Online (Sandbox Code Playgroud)
<div id="div1">
  <img src="http://dummyimage.com/100x50/fc0/000000.png">
</div>
Run Code Online (Sandbox Code Playgroud)

的jsfiddle