【问题标题】:Getting elements to display vertically centered in IE7让元素在 IE7 中垂直居中显示
【发布时间】:2011-11-07 23:05:31
【问题描述】:

我可以让它在除 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;}

但是它在其他浏览器中破坏了它。为什么文本被下推,如何正确对齐?

【问题讨论】:

  • IE 7 不支持 display: inline-block 属性,这很可能是你的问题

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


【解决方案1】:

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

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

display: inline-block;

用这个:

display: inline-block;
*display: inline;

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

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

【讨论】:

  • 效果很好。出于好奇,zoom: 1 适用于哪些情况?我所了解的只是它有时会修复 IE7 错误。
  • 没问题。回答您的其他问题,read this。适用时适用:)
猜你喜欢
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 1970-01-01
  • 1970-01-01
  • 2020-12-16
相关资源
最近更新 更多