web-dev-qa-db-ja.com

cellpacingとcellpaddingがCSSスタイルではないのはなぜですか

なぜこれがそんなに私を悩ますのか分かりませんが、ウェブサイトを作成するとき、私はいつもCSSですべてのスタイリングをしようとします。ただし、テーブルで作業しているときは、cellspacing = "0"とcellpadding = "0"を追加する必要があります。

これらの時代遅れのHTML 4属性をオーバーライドするCSSプロパティがないのはなぜですか?

50
Ryan Smith

セル間隔

table { border-collapse: collapse; }

cellpadding については、次のことができます

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

マットは既に答えましたが、完全を期すためだけに:

  • paddingcellpadding
  • border-spacingcellspacing
  • border-collapse→同等のHTMLはありません

また、CSSの値に水平と垂直の値を別々に設定できることも覚えておく価値があります。 border-spacing: 0 1px

41
user42092

Eric Myerの reset stylesheet には、テーブルの次の 'reset'スタイルが含まれています。

/* 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;
}

私がこれに言及する理由は、彼が「tables still cellpadding = 0」というコメントを持っているからです。おそらくいくつかの古いブラウザに必要な理由で、彼はここにこれを入れたと思います。これは彼が含めたごく少数のコメントの1つであるという事実から判断すると、私はその重要性を推測しており、それには正当な理由があると考えています。

このコメントに基づいて-このコメントだけで! -マークアップでcellspacing = "0"を使用し続けているのは、なぜ(下に)誰かが私に必要がないのかを明確に教えてくれない限りです。しかし、最近サポートする価値のある最新のブラウザーでは、おそらく不要になる可能性があります。

8
Simon_Weaver
table { border-collapse:collapse; }
1
Jimmy

私は誰かがセル間隔を「悪い習慣」と考えていたと思います。私がそれを理解する方法は、CSS2標準に含まれる同等のものですが、IEはこのプロパティをサポートしていません。 border-collapseでは、間隔を0の値に設定できます。セルのパディングは、パディングプロパティをテーブルのTD要素に設定することで実現できます。

0
Din