なぜそんなに気になるのかわかりませんが、ウェブサイトを作るときはいつもCSSでスタイリングをするようにしています。ただし、テーブルを操作するときに常に覚えておく必要があることの1つは、cellspacing="0"とcellpadding="0"を追加することです。
これらの時代遅れのHTML4属性をオーバーライドするCSSプロパティがないのはなぜですか?
なぜそんなに気になるのかわかりませんが、ウェブサイトを作るときはいつもCSSでスタイリングをするようにしています。ただし、テーブルを操作するときに常に覚えておく必要があることの1つは、cellspacing="0"とcellpadding="0"を追加することです。
これらの時代遅れのHTML4属性をオーバーライドする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 のリセット スタイルシートには、次の table の「リセット」スタイルが含まれています。
/* 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 が必要」というコメントがあるからです。彼は何らかの理由でこれをここに入れていると思います - おそらくいくつかの古いブラウザで必要です。これが彼が含めた非常に数少ないコメントの 1 つであるという事実から判断すると、それは重要であり、それには正当な理由があると思います。
このコメントに基づいて - そしてこのコメントだけで!- マークアップで、cellspacing="0" を使用し続けますが、その必要がない理由を誰かが明確に (以下で) 教えてくれます。ただし、最近サポートする価値のある最新のブラウザーでは不要になる可能性があります。
table { border-collapse:collapse; }
誰かがセルの間隔を「悪い習慣」と見なしたと思います。CSS2標準に含まれているのと同じですが、IEはこのプロパティをサポートしていません。border-collapse を使用すると、間隔を 0 の値に設定できます。セルのパディングは、パディング プロパティをテーブルの TD 要素に設定することで実現できます。