結果のテーブルを次のように見せないことを意味します。
[=== ROW ===] [=== ROW ===] [=== ROW ===] [=== ROW ===]
...そしてもっとこのように:
[=== ROW ===] [=== ROW ===] [=== ROW ===] [=== ROW ===]
追加してみた
margin-bottom:1em;
tdとtrの両方にありますが、何も得られませんでした。何か案は?
結果のテーブルを次のように見せないことを意味します。
[=== ROW ===] [=== ROW ===] [=== ROW ===] [=== ROW ===]
...そしてもっとこのように:
[=== ROW ===] [=== ROW ===] [=== ROW ===] [=== ROW ===]
追加してみた
margin-bottom:1em;
tdとtrの両方にありますが、何も得られませんでした。何か案は?
回答:
必要なもの:
table {
border-collapse: separate;
border-spacing: 0 1em;
}
これは、1emの垂直方向のギャップがあり、水平方向のギャップがないことを前提としています。これを行っている場合は、行の高さの制御も検討する必要があります。
人々が与えた回答のいくつかが境界崩壊を含む一種の奇妙なもの:崩壊、その影響は質問が要求したものの正反対です。
thead, tbody {position: relative; top: -{border-spacing-value} }
。
table {
border-collapse: collapse;
}
td {
padding-top: .5em;
padding-bottom: .5em;
}
最初にborder-collapseを設定しない限り、セルは何にも反応しません。(特に)TR要素が設定されたら、ボーダーを追加することもできます。
これがレイアウト用である場合は、DIVおよびより最新のレイアウト手法を使用することに移りますが、これが表形式のデータである場合は、ノックアウトしてください。私はまだ私のデータをWebアプリケーションでテーブルを多用しています。
他の答えのどれも満足できない場合は、常に空の行を作成し、 CSSでそれを適切にスタイル設定して透明にすることができます。
境界線がない場合、または境界線がありセル内の間隔が必要な場合はpadding
、またはを使用できますline-height
。私の知る限り、マージンはセルと行には影響しません。
セルの間隔のCSSプロパティはですがborder-spacing
、IE6 / 7では機能しません(そのため、群集に応じて使用できます)。
他のすべてが失敗した場合はcellspacing
、マークアップで古い属性を使用できますが、これにより列間の間隔も得られます。いくつかのCSSリセットは、ブラウザー間サポートを取得するためにとにかく設定することを提案しています:
/ *
cellspacing="0"
マークアップにはまだテーブルが必要です* /
これは方法です(私はそれは不可能だと思っていました):
最初に、テーブルに縦のボーダー間隔(たとえば5px)のみを設定し、横のボーダー間隔を0に設定します。次に、各行のセルに適切なボーダーを設定する必要があります。たとえば、各行の右端のセルには、上下左右に境界線が必要です。左端のセルには、上下左右に境界線が必要です。そして、これら2つの間の他のセルは、上下に境界線のみを持つ必要があります。この例のように:
<table style="border-spacing:0 5px; color:black">
<tr>
<td style="border-bottom:thin black solid; border-top:thin black solid; border-left:thin black solid;">left-most cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid; border-right:thin black solid;">right-most cell</td>
</tr>
<tr>
<td style="border-bottom:thin black solid; border-top:thin black solid; border-left:thin black solid;">left-most cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid; border-right:thin black solid;">right-most cell</td>
</tr>
<tr>
<td style="border-bottom:thin black solid; border-top:thin black solid; border-left:thin black solid;">left-most cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td>
<td style="border-bottom:thin black solid; border-top:thin black solid; border-right:thin black solid;">right-most cell</td>
</tr>
</table>
単にあなたが使用することができますpadding-top
し、padding-bottom
上のtd
要素。
ユニットはこのリストから何でもできます:
td
{
padding-top: 10px;
padding-bottom: 10px;
}
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>
<tr>
<td>Peter</td>
<td>Griffin</td>
</tr>
<tr>
<td>Lois</td>
<td>Griffin</td>
</tr>
</table>
テーブルを使用したデザインに固執する場合は、コンテンツのない空の行を指定し、テーブルの各行の間に高さを指定することをお勧めします。
divを使用して、この複雑さを回避できます。各divにマージンを与えるだけです。
CSSを使用して各行の高さを変更することもできます。
<head>
<style>
tr {
height:40px;
}
</style>
</head>
<body>
<table>
<tr> <td>One</td> <td>Two</td> </tr>
<tr> <td>Three</td> <td>Four</td> </tr>
<tr> <td>Five</td> <td>Six</td> </tr>
</table>
</body>
<td>
要素の高さを変更することもできます。同じ結果が得られるはずです。
<tr>
すぐ下に別のものを作成し、コンテンツにスペースまたは高さを追加します<td>
たとえば、フィドルをチェックアウトします
次のルールをtrに追加すると動作します
float: left
サンプル(IE9 offcourseで開く:)):http ://jsfiddle.net/zshmN/
編集:これは多くの人が指摘したように合法的または正しい解決策ではありませんが、選択肢がなく、何かが必要な場合はIE9で機能します。
票を投じているすべての人は、正しい解決策も教えてください