在IE7标准模式下,空表格单元格的高度为1像素。

3
在IE9中使用IE7标准模式时,空表格单元格会被赋予1像素高度。这会导致表格下方的元素出现比应该更低的情况。我使用以下代码创建了一个JSFiddle:http://jsfiddle.net/Zr7T2/3/ 有没有办法在IE7标准模式下使空表格单元格高度为0像素?
我需要在HTML/CSS中解决这个问题,不能使用JS。简单地删除空单元格不是一个选项。谢谢!
<!-- DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" -->
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <title>IE7 empty cell bug?</title>
        </head>
        <body>
            <table cellpadding="0" cellspacing="0">
                <tbody>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                    <tr><td /></tr>
                </tbody>
            </table>
            This text should be at the top of the page. It isn't when running in IE9 with IE7 standards mode turned on.
        </body>
    </html>

1
移除文档类型中的注释标签。在doctype之前的任何内容都会使IE进入quirks模式。 - Rob
3个回答

0

将单元格高度明确设置为零:

td { height: 0; }

这并没有解决问题。 - Russ
1
@Russ,你说得对,我在测试时可能不小心切换了IE的模式。当文档模式设置为Quirks Mode时,在浏览器模式IE 9下也会出现问题。即使在空单元格上设置"display: none"只能在表格为空时解决问题,但奇怪的是当这些行位于真实行之间时却无法解决问题。 - Jukka K. Korpela

0

您可以像这样使用特定于浏览器的CSS:

body
{
*margin-top:-30px; /* IE 7 and below */
}

对不起,我应该更具体地说明:我需要使空表格单元格的高度为0像素。我已经更新了问题以澄清这一点。 - Russ
也许用HTML/CSS无法实现。请查看此线程:https://dev59.com/lWLVa4cB1Zd3GeqPuDj- - Rahul

0
我也遇到过这个问题。我只是简单地放置了


<td>&nbsp;</td> 

但这更像是一个不好的义肢,而不是一个好的解决方案。


这并不能解决问题。 - Russ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接