在HTML表格中,单元格填充和单元格间距可以这样设置:
<table cellspacing="1" cellpadding="1">
如何使用CSS实现这一点?
在HTML表格中,单元格填充和单元格间距可以这样设置:
<table cellspacing="1" cellpadding="1">
如何使用CSS实现这一点?
当前回答
基础
为了控制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页面。
其他回答
此外,如果您希望cellspacing=“0”,请不要忘记在表的样式表中添加边框折叠:折叠。
对于那些想要非零单元格间距值的人,下面的CSS对我有用,但我只能在Firefox中测试它。
有关兼容性的详细信息,请参阅其他地方发布的Quirksmode链接。它似乎不适用于较旧的Internet Explorer版本。
table {
border-collapse: separate;
border-spacing: 2px;
}
您可以使用CSS padding属性轻松地在表格单元格内设置填充。这是产生与表的cellpadding属性相同效果的有效方法。
桌子第,标准差{边框:1px实心#666;}表th,表td{填充:10px;/*应用单元格填充*/}<!DOCTYPE html><html lang=“en”><head><meta charset=“utf-8”><title>在CSS中设置Cellpadding</title></head><body><表><thead><tr><th>行</th><th>名字</th><th>姓氏</th><th>电子邮件</th></tr></thead><tbody><tr><td>1个</td><td>克拉克</td><td>肯特</td><td>clarkkent@mail.com</td></tr><tr><td>2个</td><td>彼得</td><td>帕克</td><td>peterparker@mail.com</td></tr><tr><td>3个</td><td>约翰</td><td>兰博</td><td>johnrambo@mail.com</td></tr></tbody></table></body></html>
类似地,您可以使用CSS边框间距属性来应用相邻表格单元格边框之间的间距,如cellspacing属性。但是,为了计算边界间距,边界塌陷属性的值必须是单独的,这是默认值。
表{边界塌陷:分离;边框间距:10px;/*应用单元格间距*/}桌子第,标准差{边框:1px实心#666;}表th,表td{填充:5px;/*应用单元格填充*/}<!DOCTYPE html><html lang=“en”><head><meta charset=“utf-8”><title>在CSS中设置单元格间距</title></head><body><表><thead><tr><th>行</th><th>名字</th><th>姓氏</th><th>电子邮件</th></tr></thead><tbody><tr><td>1个</td><td>克拉克</td><td>肯特</td><td>clarkkent@mail.com</td></tr><tr><td>2个</td><td>彼得</td><td>帕克</td><td>peterparker@mail.com</td></tr><tr><td>3个</td><td>约翰</td><td>兰博</td><td>johnrambo@mail.com</td></tr></tbody></table></body></html>
试试看:
table {
border-collapse: separate;
border-spacing: 10px;
}
table td, table th {
padding: 10px;
}
或者试试这个:
table {
border-collapse: collapse;
}
table td, table th {
padding: 10px;
}
用div包装单元格的内容,你可以做任何你想做的事情,但你必须将每个单元格包装在一列中,以获得统一的效果。例如,要获得更宽的左右边距:
因此CSS将是,
div.cell加宽器{边距:0px 15px 0px 15像素;}时差{填充:0px;}<table border=“0”><tr><td class=“紧”><div class=“cellwider”>我的内容</div></td></tr></table>
是的,这很麻烦。是的,它适用于Internet Explorer。事实上,我只在Internet Explorer上测试过这一点,因为这是我们在工作中允许使用的全部功能。