如何强制TD没有内容呈现其边界?

时间:2009-03-02 13:07:31

标签: jquery internet-explorer fadeout html-table

TD有一个DIV,我在其中使用jQuery的fadeOut函数删除,但是当它完成时,边框也消失了。

我想避免这种情况,除了添加“& nbsp;”之外还有其他方法吗? (这会让它变丑)?

编辑:我正在使用Internet Explorer(6和7)

6 个答案:

答案 0 :(得分:9)

CSS:

table {
  empty-cells: show;
}

您还需要将IE置于标准渲染模式才能工作。添加doctype后,至少IE8(Beta 2及更高版本)播放效果很好。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 "http://www.w3.org/TR/html4/loose.dtd">

IE7及以下版本仍然不会这样做。在the MS CSS compatibility statement上,对empty-cells的支持被认为是“部分”(对于IE7和IE8 Beta 1)。无论“部分”意味着什么,不实施“表演”都难以称之为“部分支持”。通过折叠表格边框,可以强制这些浏览器绘制单元格边框:

table {
  border-collapse: collapse;   
}

忽略empty-cells的设置。但是一旦折叠边框,无论如何都不需要设置,因为所有浏览器都会显示折叠的边框。

答案 1 :(得分:5)

向单元格添加不间断空格:

<td>&nbsp;</td>

黑客攻击,但比添加图像更好。

答案 2 :(得分:5)

&lt; td style =“font-size:1pt”&gt;&amp; nbsp;&lt; td&gt;

答案 3 :(得分:3)

我最终将一个透明的1px图像添加到单元格suggested by Jukka "Yucca" Korpela。现在,如果没有更好的替代方案,我将使用此解决方案

答案 4 :(得分:0)

根据您要完成的具体操作,您可以将div的visibility - 属性设置为hidden,而不是将其display - 属性设置为{{1} },即您必须在调用none后手动恢复display opacity 并设置visibility

答案 5 :(得分:0)

所以如果你有一个如下表:

<table border="1">
<tr>
 <td>Breakfast</td>
 <td><div id="foo">Lunch</div></td>
 <td>Dinner</td></tr>
</table>

你褪色,用jQuery,午餐,为什么不用fadeIn带回空白?

如下所示:

$("#foo").fadeOut("slow").html('').fadeIn("fast");