协慌网

登录 贡献 社区

在 CSS 中设置 cellpadding 和 cellspacing?

在 HTML 表格中, cellpaddingcellspacing可以设置如下:

<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;}

在此处输入图像描述

CELLPADDING

设置单元格内容与单元格墙之间的间距

table {border-collapse: collapse;}
td    {padding: 6px;}

在此处输入图像描述

CELLSPACING

控制表格单元格之间的空间

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 */
}