我有固定的高度div,其中包含文本。我希望文本在div的中间垂直对齐,但是问题在于这样的事实,即某些文本是单行的,而另一些文本则分成两行。对于IE8,Chrome和Firefox,使用display: table-cellvertical-align: middle提供了我需要的解决方案:

JS Fiddle is here。当文本在一行上时,请去除width: 300px上的星号以查看格式。

但是,IE7不支持display: table-cell属性。我发现的唯一解决方案仅适用于单行,而不适用于可能是1或2行的文本。像在更现代的浏览器中一样,如何在IE7中显示它而不使用任何脚本?

最佳答案

IE7 CSS调用怎么样,将position:relative放在div上,将absolute放在h6上,并为现代浏览器保留vertical-align的代码。

http://jsfiddle.net/yap59cn3/

<!--[if IE 7]>
    <link rel="stylesheet" type="text/css" href="ie7.css">
<![endif]-->

ie7.css
div
{
    /* Use inheritance, and override only the declarations needed. */
    position:relative;
}

h6
{
    height:auto; /* override inherited css */
    position:absolute;
    top:45%;
}

目的是使IE7“具有代表性”-无论您做什么,它都不会像现代浏览器一样漂亮。对我来说,这不值得头疼(一点也不)。

10-08 09:38
查看更多