我有一个简单的固定宽度表。第一列的宽度很宽,包含一些简单的文本。其他列是固定宽度的,并且包含填充的div,其中包含一些更简单的文本。该表的所有元素均设置为vertical-align:middle。在IE7 +,FF,Chrome等中,所有内容都能垂直对齐。

然后,我添加了一些JS来切换固定宽度列的显示。在FF,Chrome,甚至是IE7中,所有内容都保持垂直对齐,但是由于某些原因,IE8变得混乱。

这是一个演示:http://www.pinksy.co.uk/table.html

展示:


切换第4列。然后,将第5列垂直对齐,就像它仍然是旧行的高度一样。
切换第3列。然后将第4列和第5列垂直对齐,好像它仍是旧行的高度一样。
切换第2列。然后将第3、4和5列垂直对齐,好像它仍是旧行的高度一样。


因此,这与IE8无法重新计算剩余的最右边的列相对于新行高的垂直对齐方式有关。

疯狂的是,在IE7中还可以!任何想法,不胜感激!

最佳答案

我的IE8在兼容性视图模式下运行。当我切换到普通模式时,我可以复制您的问题。我为数字添加了一个嵌套表并对其进行了修复...

<td class="title">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a pharetra risus. Quisque sodales libero eget diam tincidunt interdum sollicitudin nunc porttitor. Donec bibendum ultrices purus sit amet viverra. Sed in libero quis tellus vehicula mattis sit amet vitae turpis.
</td>
<td>
    <table>
    <tr>
        <td class="num1">
            <div class="val">Num1</div>
        </td>
        <td class="num2">
            <div class="val">Num2</div>
        </td>
        <td class="num3">
            <div class="val">Num3</div>
        </td>
        <td class="num4">
            <div class="val">Num4</div>
        </td>
        <td class="num5">
            <div class="val">Num5</div>
        </td>
    </tr>
    </table>
</td>

关于html - 垂直对齐:在IE8的td上居中(在IE7/FF/Chrome中可以),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9320035/

10-12 13:24