div内部图像的垂直对齐

Dee*_*epa 13 css image alignment vertical-alignment

我想在div中设置图像的垂直对齐方式.我使用img {vertical-align:middle}但它不起作用.

Pra*_*pta 16

使用该line-height属性将解决问题:

<style> 
.someclass {
  width: 300px;
  height: 300px;
  text-align: center;
  line-height: 300px;
  border: dotted;
}
.someclass img {
  margin: auto;
  vertical-align: middle;
}
</style>
<div class="someclass"> 
  <img src="someimg.jpg" border="0" alt=""> 
</div>
Run Code Online (Sandbox Code Playgroud)


Rus*_*sti 6

这是一个不需要JavaScript的解决方案(正如我之前的解决方案所做的那样).

您可以通过分配display: table-cell包含div 来实现您想要的效果.这是一个例子:http://jsbin.com/evuqo5/2/edit

我觉得我必须警告你,你需要在你想要支持的每个浏览器中测试它.对table-cell价值的支持相当新,特别是在Firefox中.我知道它适用于Firefox 4,但我不知道任何3.x迭代.你也想在IE中测试(我只在Chrome 10和Firefox 4中测试过).

CSS:

  div#container {
    width: 700px;
    height: 400px;
    position: relative;
    border: 1px solid #000;
    display: table-cell;
    vertical-align: middle;  
  }
  div#container img {
    margin: 0 auto;
    display: block;
  }
Run Code Online (Sandbox Code Playgroud)

div#container img如果您不想水平对齐图像,则不需要样式.