3700

在HTML表中单元格填充单元格间距可以这样设置:

<表格cellspacing=“1”cellpadding=“2”>

如何使用CSS实现这一点?

  • 11
    只是一个一般性建议,在尝试这些解决方案之前,请检查style.css是否对表进行了“重置”。示例:如果没有将表设置为宽度:自动然后边界崩塌可能无法按预期工作。 评论 2016年9月1日7:12
  • 在表上使用border-spacing,在td上使用padding。 评论 2017年5月23日9:17
  • 6
    “噢,该死,回到过去我做过这个单元格填充单元格间距……在CSS中又是什么?“我,几乎每次我需要这样做的时候。 评论 2021年8月13日16:43

19个答案19

重置为默认值
3887

基础

要控制CSS中的“cellpadding”,只需使用衬垫在表格单元格上。例如,对于10px的“cellpadding”:

td,th{/*表格单元格*/填充:10px;}

对于“单元格间距”,可以应用边界间距将CSS属性添加到表中。例如,对于10px的“单元格间距”:

表格{边界间距:10px;边界崩塌:分离;}

这个属性甚至允许单独的水平和垂直间距,这是老式的“单元格间距”无法做到的。

IE中的问题≤7

除了Internet Explorer到Internet Explorer 7之外,这几乎适用于所有流行的浏览器,因为在Internet Explorer 7中,您几乎不走运。我说“几乎”是因为这些浏览器仍然支持边界崩塌属性,该属性合并相邻表单元格的边界。如果您试图消除单元格间距(即,cellspacing=“0”)然后边界坍塌:坍塌应该有相同的效果:表单元格之间没有空格。不过,这种支持存在缺陷,因为它没有覆盖现有的单元格间距表元素的HTML属性。

简而言之:对于非Internet Explorer 5-7浏览器,边界间距处理你。对于Internet Explorer,如果您的情况正好合适(您需要0个单元格间距,而您的表尚未定义),可以使用边界坍塌:坍塌.

表格{边界间距:0;边界崩塌:崩塌;}

注意:有关可以应用于表以及适用于哪些浏览器的CSS属性的详细概述,请参阅奇妙的Quirksmode页面.

10
  • 34
    cellpadding=“0”在Chrome 13.0.782.215中仍然可以发挥作用,即使对表应用了border-collapse:collapse和border-spacing。 评论 2011年8月25日3:01
  • 7
    @LeeWhitney需要在表格单元格上设置填充:0。 评论 2011年11月29日10:09
  • 11
    这有点偏离主题,但HTML5中删除了单元格填充和单元格间距属性,所以CSS是现在唯一的方法。 评论 2013年11月22日19:10
  • 16
    大家好。为了清晰起见,我更新了答案,其中包括一节关于cellpadding的内容,我认为这很明显(只需使用“padding”)。希望它现在更有用。 评论 2013年12月16日6:27
  • 5
    没错,@vapcguy,在任何其他可能正在设计表样式的无限变量情况下,都需要定义更具体的选择器。以上内容标记为示例。 评论 2015年4月1日20:41
1029

违约

浏览器的默认行为相当于:

表{border-collapse:collapse;}td,th{填充:0px;}

         在此处输入图像描述

单元格填充

设置单元格内容和单元格壁之间的空间量

表{border-collapse:collapse;}td,th{填充:6px;}

        在此处输入图像描述

单元格间距

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

表{边框间距:2px;}td,th{填充:0px;}

        在此处输入图像描述

两者都有

表{边框间距:2px;}td,th{填充:6px;}

        在此处输入图像描述

两者(特殊)

表格{边框间距:8px 2px;}td,th{填充:6px;}

        在此处输入图像描述

注:如果有边界间距设置,它指示边界崩塌表的属性为分离.

你自己试试吧!

在这里您可以找到实现这一点的旧HTML方法。

6
  • 1
    桌子周围的间距是如何消失的?当我设置“border-spacing:8px12px”时,它不仅增加了表格边框和外部单元格之间的间距,而且还增加了表格边界和外部单元格间的间距!但这里的图像中并没有描述这一点;它们都是左对齐的。
    – 卡兹
    评论 2013年11月19日1:14
  • 1
    @2astalavista不幸的是,如果有人想要删除外部间距的效果,那么这些CSS属性就无法实现这种效果。
    – 卡兹
    评论 2013年11月19日18:07
  • @你可能需要用负边距来隐藏那个恼人的部分。
    – 用户669677
    评论 2013年11月20日9:59
  • 2
    TD上的默认填充通常为1px,而不是0
    – 1月M日
    评论 2014年11月5日15:40
  • 当心:边界间距:水平垂直;然而,例如,填充:垂直水平;. 评论 2020年10月30日19:03
371
桌子{border-collapse:崩溃;/*'单元格间距等效值*/}表td、表th{填充:0;/*'cellpadding等效*/}
1
  • 24
    那是单元格间距=0等效。的等效值单元格间距=1完全不同。查看已接受的答案。 评论 2012年7月25日14:08
125

据我所知,在表格单元格上设置边距实际上没有任何效果。真正的CSS等价物单元格间距边界间距-但它在Internet Explorer中不起作用。

你可以使用边界坍塌:坍塌如前所述,可靠地将单元格间距设置为0,但对于任何其他值,我认为唯一的跨浏览器方法是继续使用单元格间距属性。

2
  • 51
    在今天这个时代,现实是非常糟糕的。
    – 约翰·K
    评论 2010年7月9日2:36
  • 8
    这几乎是正确的,但是边界崩塌只有在表没有单元格间距属性定义。我写了一个全面的答案,将本页上其他答案的所有正确部分合并在一起,以备不时之需。 评论 2010年7月9日2:36
112

此黑客程序适用于Internet Explorer 6及更高版本,谷歌浏览器、Firefox和歌剧:

表格{边界崩塌:分离;边框间距:10px;/*单元格间距*/*border-collapse:表达式('separate',cellSpacing='10px');}表td、表th{填充:10px;/*单元格填充*/}

这个*声明适用于InternetExplorer6和7,其他浏览器将正确忽略它。

表达式(“分隔”,单元格间距=“10px”)收益“单独”,但这两个语句都会运行,因为在JavaScript中,您可以传递比预期更多的参数,并且将对所有参数进行求值。

0
74

对于那些想要非零单元格间距值的人来说,以下CSS对我很有用,但我只能在Firefox中测试它。

请参阅Quirksmode(奇怪模式)链接张贴在其他地方了解兼容性详细信息。它似乎不适用于较旧的Internet Explorer版本。

表格{边界崩塌:分离;边界间距:2px;}
57

这个问题的简单解决方案是:

桌子{边框:1px实心#000000;边界崩塌:崩塌;边框间距:0px;}表td{填充:8px 8px;}
0
55

另外,如果你愿意cellspacing=“0”,别忘了添加边界坍塌:坍塌在您的桌子的样式表。

47

用div包装单元格的内容,可以做任何事情,但必须将每个单元格包装在一列中才能获得统一的效果。例如,为了获得更宽的左右边距:

所以CSS将是,

div.cellwidener公司{边距:0px 15px 0px 15 px;}td.右侧{填充:0px;}
<表格边框=“0”><tr><td class=“紧密”>我的内容</td></tr></表格>

是的,这很麻烦。是的,它可以与Internet Explorer一起使用。事实上,我只在InternetExplorer上测试过,因为这就是我们在工作中可以使用的全部内容。

0
26

此样式适用于表的完全重置-单元格填充,单元格间距边界.

我在reset.css文件中使用了此样式:

表格{边框:0;/*替换边框*/边框间距:0px;/*替换单元格间距*/border-collapse:崩溃;/*Internet Explorer 6和Internet Explorer 7的修补程序*/}表td{填充:0px;/*替换单元格填充*/}
22

TBH(待定)。对于CSS的所有功能,您不妨使用cellpadding=“0” cellspacing=“0”因为它们没有被否决。。。

任何其他建议在<td>显然,我们没有尝试过这种方法。

1
  • 37
    它们实际上在html5中已被弃用。
    – 克孜凯
    评论 2011年11月15日16:49
19

只需对表数据使用CSS填充规则:

td{填充:20px;}

对于边框间距:

表格{边界间距:1px;边界崩塌:崩塌;}

然而,由于盒子模型的不同实现,它可能会在旧版本的浏览器(如Internet Explorer)中产生问题。

17

从W3C分类中我了解到<表格>表示“仅”显示数据。

基于此,我发现创建一个<div>具有背景和所有这些,并使用位置:绝对;背景:透明;...

它可以在Chrome、Internet Explorer(6及更高版本)和Mozilla Firefox(2及更高版)上运行。

边距用于(或无论如何)在容器元素之间创建间隔符,如<表格>,<div><表格>,不是<tr>,<td>,<span><输入>。将其用于容器元素以外的任何内容都会使您忙于调整网站以备将来的浏览器更新。

0
15

CSS格式:

选择器{填充:0 0 10px 0;//左上右下}
14

您可以使用CSS padding属性轻松设置表单元格内的填充。这是一种有效的方法,可以产生与表的cellpadding属性相同的效果。

表,第,td(时域){边框:1px实心#666;}表th,表td{填充:10px;/*应用单元格填充*/}
<!DOCTYPE html><html lang=“en”><头部><元字符集=“utf-8”><title>在CSS中设置Cellpadding</头><body><表格><头部><tr>名字姓氏电子邮件</tr></thead><t车身><tr><td>1个</td><td>克拉克</td><td>肯特</td><td>[电子邮件保护]</td></tr><tr><td>2个</td><td>彼得</td><td>帕克</td><td>[电子邮件保护]</td></tr><tr><td>3个</td><td>约翰</td><td>兰博</td><td>[电子邮件保护]</td></tr></tbody></表格></body></html>

类似地,您可以使用CSS border-spacing属性应用相邻表单元格边框之间的间距,如cellspacing属性。然而,为了使用border-space,border-collapse属性的值必须是单独的,这是默认值。

表格{边界崩塌:分离;边界间距:10px;/*应用单元格间距*/}表,第,td(时域){边框:1px实心#666;}表th,表td{填充:5px;/*应用单元格填充*/}
<!DOCTYPE html><html lang=“en”><头部><元字符集=“utf-8”><title>在CSS中设置单元格间距</头><body><表格><头部><tr>名字姓氏电子邮件</tr></thead><t车身><tr><td>1个</td><td>克拉克</td><td>肯特</td><td>[电子邮件保护]</td></tr><tr><td>2个</td><td>彼得</td><td>帕克</td><td>[电子邮件保护]</td></tr><tr><td>3个</td><td>约翰</td><td>兰博</td><td>[电子邮件保护]</td></tr></tbody></表格></body></html>

12

试试这个:

表格{边界崩塌:分离;边界间距:10px;}表td、表th{填充:10px;}

或者试试这个:

表格{边界崩塌:崩塌;}表td、表th{填充:10px;}
10

我用过!重要的在边界崩塌之后

边界坍塌:坍塌!重要;

它在IE7中对我很有效。它似乎覆盖了cellspacing属性。

1
  • 10
    !重要的只需要覆盖其他CSS设置在复杂的情况下(即使是这样,也大多是错误的方法)。 评论 2013年5月30日10:37
9

假设我们想以符合HTML5的方式为我们的表分配一个10px的“cellpadding”和一个15px的”cellspacing“。我将在这里展示两种提供真正相似输出的方法。

两组不同的CSS属性应用于表的相同HTML标记,但概念相反:

  • 第一个使用默认值边界崩塌(分离)和使用边界间距为了提供单元间距,

  • 第二个开关边界崩塌崩溃并使用边境属性设置为单元格间距。

在这两种情况下,单元格填充都是通过赋值实现的填充:10pxtd(时域)在这两种情况下背景色分配给他们只是为了更清晰的演示。

第一种方法:

表格{边框间距:15px}td{背景颜色:#00eb55;填充:10px;边框:0}
<表格><tr><td>标题1</td><td>标题2</td></tr><tr><td></td><td>2</td></tr><tr><td>3</td><td>4</td></tr></表格>

第二种方法:

表{border-collapse:折叠}td{背景色:#00eb55;填充:10px;边框:15px实心#fff}
<表格><tr><td>标题1</td><td>标题2</td></tr><tr><td></td><td>2</td></tr><tr><td>3</td><td>4</td></tr></表格>

6
td(时域){填充:npx;/*用于单元格填充*/边距:npx;/*对于单元格间距*/border-collapse:崩溃;/*用于以更好的形状显示边框*/}

如果边缘不起作用,尝试设置显示属于信托收据然后利润率就会发挥作用。

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.