我不知道为什么这对我这么烦恼,但是当我创建网站时,我总是尝试用CSS做我所有的造型。但是,当我使用表格时,我总是要记住要做的一件事是添加cellspacing =“0”和cellpadding =“0”
为什么没有CSS属性来覆盖这些过时的HTML 4属性?
答案 0 :(得分:63)
答案 1 :(得分:41)
padding
→cellpadding
border-spacing
→cellspacing
border-collapse
→没有HTML等效项还值得记住的是,您可以为CSS设置单独的水平和垂直值,例如border-spacing: 0 1px
。
答案 2 :(得分:8)
Eric Myer的reset stylesheet包含以下表格的'重置'样式:
/* tables still need 'cellspacing="0"' in the markup */
table {
border-collapse: collapse;
border-spacing: 0;
}
此外,TD,TR被重置:
thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
我提到这个的原因是他有一个评论'表仍然需要cellpadding = 0'。我认为他把这个放在这里是有原因的 - 可能需要一些旧的浏览器。从这一事实来看,这是他所包含的极少数评论之一,我猜它很重要,并且有充分的理由。
基于此评论 - 仅此评论! - 我继续在标记中使用cellspacing =“0”,除非有人告诉我(下面)为什么我不需要。然而,在任何现代浏览器中可能都没有必要支持这些日子。
答案 3 :(得分:1)
table { border-collapse:collapse; }
答案 4 :(得分:0)
我猜有人认为细胞间距是一种“不良做法”。我如何理解它等同于CSS2标准,但IE不支持此属性。 border-collapse允许将间距设置为0值。可以实现单元填充,将填充属性设置为表的TD元素。
答案 5 :(得分:0)
遗憾的是,单元格不能从行(tr)的CSS属性继承默认填充,否则不能从行组(thead / tbdy / tfoot)继承默认填充,如果不是“ initial”则是从colgroup继承,或整个桌子。
“ cellspacing”不存在此问题(但实际上,它们是单元格周围的边距,并且这些外部边距随着相邻单元格的边距以及填充表格/行组或行的内部填充而崩溃通过表格的“背景”设置(表格背景还包括表格的“边框”,该边框在表格的顶部绘制,并且还会将该背景裁剪到表格边框的外边缘,特别是当边框具有圆角时)。 / p>
但是对于cellpadding而言,将“ cell-padding:n”定义为表或组属性比在每个单元格上单独且显式地使用其自己的“ border:n”样式(应该仅是如果需要覆盖某些特定单元格中的填充,则使用此符号。)