2010-01-16 39 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

相关问题