我不知道为什么这让我如此烦恼,但是当我创建网站时,我总是尝试使用 CSS 来完成所有样式。然而,当我使用表格时,我总是必须记住要做的一件事是添加 cellspacing="0" 和 cellpadding="0"

为什么没有 CSS 属性来覆盖这些过时的 HTML 4 属性?

有帮助吗?

解决方案

CELLSPACING

table { border-collapse: collapse; }

至于 CELLPADDING ,则可以做

table tr td, table tr th { padding: 0; }

其他提示

mat 已经回答了,但只是为了完整性:

  • paddingcellpadding
  • border-spacingcellspacing
  • border-collapse → 没有 HTML 等效项

还值得记住的是,您可以为 CSS 设置单独的水平和垂直值,例如 border-spacing: 0 1px.

埃里克·迈尔的重置样式包含了表以下“复位”的风格:

/* 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”。我认为他把这个在这里是有原因的 - 可能是由一些旧的浏览器需要。的事实,这是他列入我猜其重要和极少数的意见之一判断有它一个很好的理由。

根据此评论 - 仅此一点评论! - 我继续,除非有人告诉我明确的标记使用cellpacing =“0”(下)为什么我不需要。这可能不过有可能会在任何现代的浏览器值得支持的,这些天是不必要的。

table { border-collapse:collapse; }

我想有人认为元间隔“坏实践”。我怎么知道它相当于包含在CSS2标准,但IE浏览器不支持此属性。边界崩溃允许间距设置为0值。可以实现单元格填充设置填充属性给TD表的元素。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top