なぜこれがそんなに私を悩ますのか分かりませんが、ウェブサイトを作成するとき、私はいつもCSSですべてのスタイリングをしようとします。ただし、テーブルで作業しているときは、cellspacing = "0"とcellpadding = "0"を追加する必要があります。
これらの時代遅れのHTML 4属性をオーバーライドするCSSプロパティがないのはなぜですか?
セル間隔 :
table { border-collapse: collapse; }
cellpadding については、次のことができます
table tr td, table tr th { padding: 0; }
マットは既に答えましたが、完全を期すためだけに:
padding
→cellpadding
border-spacing
→cellspacing
border-collapse
→同等のHTMLはありませんまた、CSSの値に水平と垂直の値を別々に設定できることも覚えておく価値があります。 border-spacing: 0 1px
。
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"を使用し続けているのは、なぜ(下に)誰かが私に必要がないのかを明確に教えてくれない限りです。しかし、最近サポートする価値のある最新のブラウザーでは、おそらく不要になる可能性があります。
table { border-collapse:collapse; }
私は誰かがセル間隔を「悪い習慣」と考えていたと思います。私がそれを理解する方法は、CSS2標準に含まれる同等のものですが、IEはこのプロパティをサポートしていません。 border-collapseでは、間隔を0の値に設定できます。セルのパディングは、パディングプロパティをテーブルのTD要素に設定することで実現できます。