为什么cellspacing和cellpadding不是CSS样式

Rya*_*ith 50 html css html-table cellspacing cellpadding

我不知道为什么这么困扰我,但是当我创建网站时,我总是尝试用CSS做我所有的造型.但是,当我使用表时,我总是要记住要做的一件事是添加cellspacing ="0"和cellpadding ="0"

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

mat*_*mat 63

Cellspacing:

table { border-collapse: collapse; }
Run Code Online (Sandbox Code Playgroud)

至于cellpadding,你可以做到

table tr td, table tr th { padding: 0; }
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`border-collapse:collapse`会产生与`cellspacing ="0"`完全不同的视觉效果.这两种方法实际上并不是以任何有意义或有用的方式等同或可互换的. (17认同)

小智 41

垫子已经回答了,但仅仅是为了完整性:

  • paddingcellpadding
  • border-spacingcellspacing
  • border-collapse →没有HTML等价物

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


Sim*_*ver 8

Eric Myer的重置样式表包含以下的"重置"样式:

/* tables still need 'cellspacing="0"' in the markup */
table {
    border-collapse: collapse;
    border-spacing: 0;
}
Run Code Online (Sandbox Code Playgroud)

另外TD,TR被重置:

thead, tr, th, td {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
Run Code Online (Sandbox Code Playgroud)

我提到这个的原因是他有一个评论'表仍然需要cellpadding = 0'.我认为他把这个放在这里是有原因的 - 可能需要一些旧的浏览器.从这一事实来看,这是他所包含的极少数评论之一,我猜它很重要,并且有充分的理由.

基于此评论 - 仅此评论! - 我继续在标记中使用cellspacing ="0",除非有人告诉我(下面)为什么我不需要.然而,在任何现代浏览器中可能都没有必要支持这些日子.