在 HTML 表格中, cellpadding
和cellspacing
可以设置如下:
<table cellspacing="1" cellpadding="1">
如何使用 CSS 完成同样的工作?
基本
为了控制 CSS 中的 “cellpadding”,您可以简单地在表格单元格上使用padding
。例如 10px 的 “cellpadding”:
td {
padding: 10px;
}
对于 “cellspacing”,您可以将border-spacing
CSS 属性应用于表。例如 10px 的 “cellspacing”:
table {
border-spacing: 10px;
border-collapse: separate;
}
这个属性甚至可以允许单独的水平和垂直间距,这是旧学校 “cellspacing” 无法做到的。
IE 中的问题 <= 7
这将适用于几乎所有流行的浏览器,除了 Internet Explorer 通过 Internet Explorer 7,你几乎没有运气。我说 “差不多” 因为这些浏览器仍然支持border-collapse
属性,它合并了相邻表格单元格的边框。如果你试图消除 cellspacing(即cellspacing="0"
),那么border-collapse:collapse
应该具有相同的效果:表格单元格之间没有空格。但是,这种支持是错误的,因为它不会覆盖表元素上的现有cellspacing
HTML 属性。
简而言之:对于非 Internet Explorer 5-7 浏览器, border-spacing
处理您。对于 Internet Explorer,如果您的情况恰到好处(您希望 0 个 cellspacing 并且您的表尚未定义它),则可以使用border-collapse:collapse
。
table {
border-spacing: 0;
border-collapse: collapse;
}
注意:有关可以应用于表和哪些浏览器的 CSS 属性的概述,请参阅这个奇妙的 Quirksmode 页面 。
浏览器的默认行为等效于:
table {border-collapse: collapse;}
td {padding: 0px;}
设置单元格内容与单元格墙之间的间距
table {border-collapse: collapse;}
td {padding: 6px;}
控制表格单元格之间的空间
table {border-spacing: 2px;}
td {padding: 0px;}
table {border-spacing: 2px;}
td {padding: 6px;}
table {border-spacing: 8px 2px;}
td {padding: 6px;}
注意:如果设置了
border-spacing
,则表示表的border-collapse
属性是separate
。
在这里你可以找到实现这一目标的旧 html 方式。
table
{
border-collapse: collapse; /* 'cellspacing' equivalent */
}
table td, table th
{
padding: 0; /* 'cellpadding' equivalent */
}