使元素在IE7中垂直居中显示

时间:2011-08-31 20:53:55

标签: css internet-explorer cross-browser vertical-alignment

除了IE7,我可以在所有浏览器中使用它。

HTML

<span class="verticalMiddle"></span>

<span class="jArrow inlineWrapper"></span>

<h2 class="inlineWrapper">What is depression?</h2>

CSS

.inlineWrapper {
    width: 606px;
    margin-left: 10px;
    vertical-align: middle;
    display: inline-block;
}

.verticalMiddle {
    vertical-align: middle;
    height: 50px;
    width: 0;
    display: inline-block;
}

.jArrow {
    background: url(http://www.healthquestlongbeach.com/images/library/faq/arrow.png) no-repeat left top;
    height: 20px;
    width: 22px;
}

h2.inlineWrapper {
    width: 563px;
    margin-right: 13px;
}

小提琴: http://jsfiddle.net/RfRrG/5/

问题在于h2被推下来购买.verticalMiddle {height: 50px;},但出于某种原因仅在IE7中出现(但由于某些奇怪的原因而不是.jArrow)。

我可以通过添加

解决此问题
.inlineWrapper {display:inline;}

但是它在其他浏览器中打破了它。为什么文本会被压低,如何正确对齐?

1 个答案:

答案 0 :(得分:2)

IE7中的

display: inline-block仅适用于自然内联的元素。

幸运的是,有一个简单的解决方法。替换这个:

display: inline-block;

用这个:

display: inline-block;
*display: inline;

在大多数情况下,您还必须add zoom: 1,但在您的情况下不需要。

*"safe hack",仅在IE7及更低版本中应用该属性。