如何将表格中的td高度设置为0px?

Tal*_*Tal 5 html html-table

我有一个包含几行的 HTML 表(这是动态构建的)。所有的里面<tr>都有一个<td>

\n\n

如果<td>里面没有\xe2\x80\x99t HTML 内容,我希望它是不可见的。

\n\n

如何才能做到这一点?(并不是说里面的 HTML 是动态渲染的,我不想使用或上display:none的 或任何其他属性)。<td><tr>

\n\n

代码示例:

\n\n
<html>\n    <body bgcolor="#E6E6FA">\n        <table cellSpacing="0" cellPadding="0">\n            <tr>\n                <td>one cell</td>\n            </tr>\n            <tr>\n                <td bgcolor="#FF0000"></td>\n            </tr>\n            <tr>\n                <td>two cell</td>\n            </tr>\n        </table>\n    </body>\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 Firefox 中,空的 TD 是不可见的。然而,在 IE 中,TD 占用 1 个像素的高度:

\n\n

在此输入图像描述

\n\n

使用 DOM Inspector 查看,我发现它需要 1 个像素:

\n\n

在此输入图像描述

\n\n

如何设置TD不可见?我可以在 TD 内执行任何脚本吗?

\n

Com*_*eek 2

您可以使用 CSS 伪选择器:empty:\n

\n\n
#myDynamicTable td:empty\n{\n  display: none;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

jsFiddle 示例: http: //jsfiddle.net/vKEBY/6/

\n\n

如果你想支持 IE<9:\n

\n\n
var ieVer = getInternetExplorerVersion();\nif (ieVer != -1 && ieVer < 9.0) {\n    // for IE<9 support\n    var dynamicTable = document.getElementById("myDynamicTable");\n    var TDs = dynamicTable.getElementsByTagName("td");\n\n    for (var i = 0; i < TDs.length; i++) {\n        if (TDs[i].innerHTML == "") {\n            TDs[i].style.display = "none";\n        }\n    }\n}\n\n/**\n  * All credits to Microsoft\n  * http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx#ParsingUA\n  */\nfunction getInternetExplorerVersion()\n// Returns the version of Internet Explorer or a -1\n// (indicating the use of another browser).\n{\n    var rv = -1; // Return value assumes failure.\n    if (navigator.appName == \'Microsoft Internet Explorer\') {\n        var ua = navigator.userAgent;\n        var re = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");\n        if (re.exec(ua) != null) rv = parseFloat(RegExp.$1);\n    }\n    return rv;\n}\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n\n

jsFiddle 示例: http: //jsfiddle.net/vKEBY/6/

\n

  • 尽管就 IE 而言,[`:empty` 仅适用于 IE 9](http://www.browsersupport.net/CSS/%3Aempty)。 (2认同)