我有固定的高度div,其中包含文本。我希望文本在div的中间垂直对齐,但是问题在于这样的事实,即某些文本是单行的,而另一些文本则分成两行。对于IE8,Chrome和Firefox,使用display: table-cell
和vertical-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“具有代表性”-无论您做什么,它都不会像现代浏览器一样漂亮。对我来说,这不值得头疼(一点也不)。