CSS vertical-align:中间不在IE7中工作

use*_*331 3 css vertical-alignment internet-explorer-7

我这里有这段代码......

 <div class="pics2">

<div style="position: absolute; top: 0px; left: 0px; display: block; z-index: 4; opacity: 1; width: 225px; height: 200px;"> // this div is generated via jQuery Plugin
<div style="display:table-cell; vertical-align:middle; height:200px;">
<img src="upload/<?php echo $array['image5'] ?>" width="225" />
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是CSS

.pics2 {  
    padding: 0;  
    margin-left:20px auto;
    margin-right:20px auto;
    width:225px;
    height:200px;
    overflow:hidden;
        float:left;
}

.pics2 div{
    width:225px;
    height:200px;
}

.pics2 img {    
        background-color: #eee;
    margin: auto;
    display:block;
    vertical-align:middle;
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是将图像垂直对齐三个内部div,上面的代码适用于除IE7之外的每个浏览器......任何人都有任何想法如何解决它?

Eug*_*nko 10

我希望它有助于解决您的问题(文章底部的IE 7的一些秘籍)

垂直居中的多层文本

对于像这样的示例代码

margin-top: expression((parentNode.offsetHeight.offsetHeight/2)-(parseInt(this.offsetHeight)/2) <0 ? "0" :(parentNode.offsetHeight/2)-(parseInt(this.offsetHeight)/2) +'px');
Run Code Online (Sandbox Code Playgroud)

代替

 vertical-align:middle;
Run Code Online (Sandbox Code Playgroud)
  1. parentNode.offsetHeight/2 - 确定容器的高度并将其除以2.这使得我们的边距恰好是屏幕高度的一半
  2. -(parseInt(offsetHeight)/2)) - 确定定心块的高度.