2010-01-16 49 views
19

Eric meyer reset css在標記中暗示「表格仍然需要'cellspacing =」0「'。有必要嗎? border-collapse: collapse有什麼好處;和border-spacing: 0;是否需要在<table>中添加cellspacing =「0」cellpadding =「0」?

它只是建議使用cellspacing,而表有另一個屬性叫做cellpadding?

/* tables still need 'cellspacing="0"' in the markup */ 
table { 
     border-collapse: collapse; 
     border-spacing: 0; 
} 

回答

11

cellpadding不建議,因爲padding CSS屬性足以覆蓋爲cellpadding表屬性的默認屬性。正如其他答案所述,舊版瀏覽器中cellspacing沒有兼容的CSS屬性,只留下HTML屬性作爲將此設置完全「重置」爲0的唯一方式。border-spacing: 0;爲支持它的瀏覽器負責。

至於border-collapse —默認,每個表格單元格有自己的邊框,collapse將相鄰單元之間的邊界融合在一起,給人一種(通常是單像素)網格的外觀,這是無法實現的任何其他cellspacing="0"。通常支持border-collapse之前,這就是爲什麼你會看到桌上有cellspacing="1"和背景顏色的表格,以及表格單元格上的白色背景。

border-collapse:collapse;在reset.css中,因爲它是最常見的預期結果。如果你不需要這個模式,你可以很好地從reset.css中刪除它。

1

有在表中兩種類型的邊界,表本身可以具有(小區之間的邊界外和邊界)的邊界,並且每個單元可具有它們周圍的邊框。

使用border-collapse: collapse;意味着具有相同邊框設置的兩個單元彼此相鄰將僅僅獲得一組邊界而不是兩個邊界,例如,一個單元格的右邊框將與該行中下一個單元格的左邊框一起摺疊。

在CSS 2之前,單元格之間的表格邊框沒有CSS樣式,所以必須使用表格上的HTML屬性cellspacing="0"來禁用CSS樣式,以支持IE 7 *等舊版瀏覽器。如果單元格之間有表格邊框,則邊框摺疊自然不會起作用,因爲邊框並不相鄰。

*我非常享受在調用IE 7的「舊的瀏覽器」的感覺;)

+0

和cellpadding呢? – 2010-01-16 17:53:34

相關問題