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

<table cellspacing="1" cellpadding="1">

如何使用CSS实现这一点?


当前回答

待定。对于所有使用CSS的问题,您最好只使用cellpadding=“0”cellspacing=“0“,因为它们没有被弃用。。。

显然,任何其他建议<td>利润的人都没有尝试过这一点。

其他回答

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

table
{
    border: 1px solid #000000;
    border-collapse: collapse;
    border-spacing: 0px;
}
table td
{
    padding: 8px 8px;
}

此黑客适用于Internet Explorer 6及更高版本、Google Chrome、Firefox和Opera:

table {
    border-collapse: separate;
    border-spacing: 10px; /* cellspacing */
    *border-collapse: expression('separate', cellSpacing = '10px');
}

table td, table th {
    padding: 10px; /* cellpadding */
}

*声明适用于Internet Explorer 6和7,其他浏览器将正确忽略它。

expression('separate',cellSpacing='10px')返回'separate',但这两个语句都运行,因为在JavaScript中,您可以传递比预期更多的参数,所有参数都将被求值。

td {
    padding: npx; /* For cellpadding */
    margin: npx; /* For cellspacing */
    border-collapse: collapse; /* For showing borders in a better shape. */
}

如果边距不起作用,请尝试将tr的显示设置为块,然后边距将起作用。

基础

为了控制CSS中的“cellpadding”,您可以简单地在表单元格上使用padding。例如,对于10px的“cellpadding”:

td { 
    padding: 10px;
}

对于“cellspacing”,可以将border-spacing CSS属性应用于表。例如,对于10px的“单元间距”:

table { 
    border-spacing: 10px;
    border-collapse: separate;
}

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

IE中的问题≤7

这几乎适用于所有流行的浏览器,除了Internet Explorer到Internet Explorer 7,在那里你几乎没有运气。我说“几乎”是因为这些浏览器仍然支持边界折叠属性,该属性合并相邻表单元格的边界。如果您试图消除cellspacing(即cellspacing=“0”),那么边框折叠:折叠应该具有相同的效果:表单元格之间没有空格。但是,这种支持有缺陷,因为它不会覆盖表元素上现有的cellspacingHTML属性。

简而言之:对于非Internet Explorer 5-7浏览器,边框间距可以控制您。对于Internet Explorer,如果您的情况正好(您需要0个单元格间距,而您的表尚未定义它),则可以使用边框折叠:折叠。

table { 
    border-spacing: 0;
    border-collapse: collapse;
}

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

根据我从W3C分类中了解到的,<table>是用于“仅”显示数据的。

基于此,我发现创建一个带有背景和所有背景的<div>并使用position:absolute创建一个数据浮动在上面的表要容易得多;背景:透明;。。。

它适用于Chrome、Internet Explorer(6及更高版本)和Mozilla Firefox(2及更高)。

边距用于(或意味着)在容器元素之间创建分隔符,如<table>、<div>和<form>,而不是<tr>、<td>、<span>或<input>。将其用于容器元素以外的任何其他内容都会使您忙于调整网站以适应未来的浏览器更新。