各列の間に50ピクセル、上と下に10ピクセルのパディングがある単一行のテーブルを作成したいとしましょう。
HTML/CSSでこれを行うにはどうすればよいですか?
偽の<td>
sは必要ありません。代わりにborder-spacing
を使用してください。次のように適用します。
HTML:
<table>
<tr>
<td>First Column</td>
<td>Second Column</td>
<td>Third Column</td>
</tr>
</table>
CSS:
table {
border-collapse: separate;
border-spacing: 50px 0;
}
td {
padding: 10px 0;
}
ご覧ください動作中.
<td>
sの幅を50px
に設定し、<td>
+別の偽の<td>
を追加します
HTML:
<table>
<tr>
<td>First Column</td>
<td></td>
<td>Second Column</td>
<td></td>
<td>Third Column</td>
</tr>
</table>
CSS
table tr td:empty {
width: 50px;
}
table tr td {
padding-top: 10px;
padding-bottom: 10px;
}
コードの説明:
最初のCSSルールは空のtdをチェックし、それらに50pxの幅を与えます。次に、2番目のルールはすべてのtdに上下のパディングを与えます。
私が正しく理解していれば、これが必要です fiddle 。
HTML:
<table>
<tr>
<td>Hello HTML!</td>
<td>Hello CSS!</td>
<td>Hello JS!</td>
</tr>
CSS:
table {
background: gray;
}
td {
display: block;
float: left;
padding: 10px 0;
margin-right:50px;
background: white;
}
td:last-child {
margin-right: 0;
}
パディングのみを使用できます。そのようです:
http://jsfiddle.net/davidja/KG8Kv/
HTML
<table>
<tr>
<td>item1</td>
<td>item2</td>
<td>item2</td>
</tr>
</table>
CSS
td {padding:10px 25px 10px 25px;}
OR
tr td:first-child {padding-left:0px;}
td {padding:10px 0px 10px 50px;}
選択した回答よりも優れたソリューションは、ボーダー間隔ではなくボーダーサイズを使用することです。ボーダー間隔を使用する場合の主な問題は、最初の列でさえ前面に間隔があることです。
例えば、
table {
border-collapse: separate;
border-spacing: 80px 0;
}
td {
padding: 10px 0;
}
<table>
<tr>
<td>First Column</td>
<td>Second Column</td>
<td>Third Column</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>
これを回避するには、border-left: 100px solid #FFF;
を使用し、最初の列にborder:0px
を設定します。
例えば、
td,th{
border-left: 100px solid #FFF;
}
tr>td:first-child {
border:0px;
}
<table id="t">
<tr>
<td>Column1</td>
<td>Column2</td>
<td>Column3</td>
</tr>
<tr>
<td>1000</td>
<td>2000</td>
<td>3000</td>
</tr>
</table>
試してみる
padding : 10px 10px 10px 10px;