2009-03-02 44 views
1

TD有一個DIV,我用jQuery的fadeOut函數刪除了它,但是當它完成時邊框也消失了。如何強制一個沒有內容的TD來渲染其邊框?

我想避免這種情況,有沒有什麼辦法以外加入了「& NBSP;」 (這會導致它變醜)?

編輯:我使用的Internet Explorer(6,7)

回答

9

CSS:

table { 
    empty-cells: show; 
} 

你也需要把IE在標準渲染模式這個工作。添加文檔類型後,至少IE8(Beta 2和更高版本)播放很好。

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

IE7及以下版本仍然不會這樣做。支持empty-cells據說是「部分」(對於IE7和IE8 Beta 1),在the MS CSS compatibility statement。無論「部分」意味着什麼,不實施「表演」都不能稱之爲「部分支持」。這些瀏覽器可以強制通常倒塌表格邊框繪製單元格邊框:

table { 
    border-collapse: collapse; 
} 

empty-cells設置將被忽略。但是一旦你摺疊邊框,你不需要設置,因爲所有的瀏覽器都會顯示摺疊的邊框。

+0

@Juan:這是做了正確的方式,但它不能在IE – Christoph 2009-03-02 13:13:39

+0

啊工作,但我使用的是IE 7 – juan 2009-03-02 13:13:58

+0

唔...它適用於我。你確定空單元格屬性設置使它成爲你有問題的表嗎?也許它在某個地方被覆蓋了? – Tomalak 2009-03-02 13:14:36

0

取決於你要完成什麼,我會使用此解決方案,您可以設置的div visibility -property到hidden,而不是設置其display -property到none ,即你必須恢復displayopacity和調用​​後手動設置visibility

4

添加非打破空間的細胞:

<td>&nbsp;</td>

一個黑客,但不是添加的圖像更好的破解。

4

< td style =「font-size:1pt」> & nbsp; <TD>

0

所以,如果你有一個表,如下圖所示:

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

你淡出,使用jQuery,午餐,爲什麼不帶回來一個空白自認倒黴淡入?

象下面這樣:

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