【发布时间】:2011-11-25 23:20:43
【问题描述】:
我试图在 IE7 中垂直对齐文本被证明是没有 display: table; 和 display: table-cell; 的 css 选项的 PITA
这是一个类似这样的导航:
<ul>
<li><a href="#"><span>Text covers one line</span></a></li>
<li><a href="#"><span>Text covers two lines, problem occurs</span></a></li>
</ul>
CSS:
ul li a{ display: table; zoom: 1; width: 240px; height: 30px;}
ul li a span{ width: 200px; display: table-cell; zoom: 1; vertical-align: middle; padding: 0 30px 0 20px; }
适用于较新的浏览器。我可以只用一行文本轻松地将文本居中,但是当它变为两行时,我似乎无法正常工作。
【问题讨论】:
-
您意识到您的跨度没有正确关闭?
-
如果正确关闭 span 并不能解决问题,您介意使用 JavaScript 吗?这是我能想到的唯一方法,没有每个
- 上的一些 hacky CSS 类和一些后端逻辑来计算字母。
-
这个问题可能会有所帮助 - stackoverflow.com/questions/4785871/css-vertical-align
-
对不起,span 只是一个错字,它没有在我的标记中损坏。您发布的问题适用于单行文本(将 line-height 设置为 div 的相同高度),但是您可以想象有两行文本时的结果...
-
也是为了响应 JS,我想我不介意使用它。我更喜欢它而不是过多的标记。
标签: html css internet-explorer-7