HTML テーブルでは、cellpadding
とは次のcellspacing
ように設定できます。
<table cellspacing="1" cellpadding="1">
CSSを使用して同じことをどのように達成できますか?
HTML テーブルでは、cellpadding
とは次のcellspacing
ように設定できます。
<table cellspacing="1" cellpadding="1">
CSSを使用して同じことをどのように達成できますか?
基本
CSS で "cellpadding" を制御するには、単純padding
に表のセルで使用できます。たとえば、「cellpadding」の 10px の場合:
td {
padding: 10px;
}
border-spacing
「セル間隔」については、 CSS プロパティをテーブルに適用できます。たとえば、「cellspacing」の 10px の場合:
table {
border-spacing: 10px;
border-collapse: separate;
}
このプロパティは、従来の「セル間隔」ではできなかった、水平方向と垂直方向の間隔を分離することもできます。
IE ≤ 7 の問題
これは、Internet Explorer から Internet Explorer 7 までを除いて、ほとんどすべての一般的なブラウザーで機能します。私が「ほぼ」と言ったのは、これらのブラウザーがborder-collapse
、隣接するテーブル セルの境界線を結合するプロパティを引き続きサポートしているためです。セルの間隔 (つまり、cellspacing="0"
)を排除しようとしている場合border-collapse:collapse
は、同じ効果が得られるはずです。つまり、表のセル間にスペースがありません。cellspacing
ただし、このサポートはテーブル要素の既存の HTML 属性をオーバーライドしないため、バグがあります。
つまり、Internet Explorer 5 ~ 7 以外のブラウザーの場合border-spacing
は、あなたを処理します。Internet Explorer の場合、状況が適切であれば (0 のセル間隔が必要で、テーブルにまだ定義されていない場合)、 を使用できますborder-collapse:collapse
。
table {
border-spacing: 0;
border-collapse: collapse;
}
注: テーブルに適用できる CSS プロパティと、どのブラウザーに適用できるかについての優れた概要については、この素晴らしい Quirksmode ページを参照してください。
ブラウザのデフォルトの動作は次と同等です。
table {border-collapse: collapse;}
td {padding: 0px;}
セルの内容とセル壁の間のスペースの量を設定します
table {border-collapse: collapse;}
td {padding: 6px;}
表のセル間のスペースを制御します
table {border-spacing: 2px;}
td {padding: 0px;}
table {border-spacing: 2px;}
td {padding: 6px;}
table {border-spacing: 8px 2px;}
td {padding: 6px;}
注:設定されている場合は、テーブルのプロパティが である
border-spacing
ことを示します。border-collapse
separate
ここでは、これを実現する古い HTML の方法を見つけることができます。
table
{
border-collapse: collapse; /* 'cellspacing' equivalent */
}
table td, table th
{
padding: 0; /* 'cellpadding' equivalent */
}
テーブルセルにマージンを設定しても、私が知る限り、実際には何の効果もありません。に相当する真のCSScellspacing
はborder-spacing
-ですが、InternetExplorerでは機能しません。
前述のように、セル間隔を確実に0に設定するために使用できますが、他の値の場合、クロスブラウザーの唯一の方法は属性border-collapse: collapse
を使用し続けることだと思います。cellspacing
このハックは、Internet Explorer 6 以降、Google Chrome、Firefox、およびOperaで機能します。
table {
border-collapse: separate;
border-spacing: 10px; /* cellspacing */
*border-collapse: expression('separate', cellSpacing = '10px');
}
table td, table th {
padding: 10px; /* cellpadding */
}
この*
宣言は Internet Explorer 6 および 7 用であり、他のブラウザーでは適切に無視されます。
expression('separate', cellSpacing = '10px')
を返します'separate'
が、JavaScript では予想よりも多くの引数を渡すことができ、それらすべてが評価されるため、両方のステートメントが実行されます。
ゼロ以外のセル間隔値が必要な場合は、次のCSSが機能しましたが、Firefoxでしかテストできません。
互換性の詳細については、他の場所に投稿されているQuirksmodeリンクを参照してください。古いバージョンのInternetExplorerでは動作しない可能性があります。
table {
border-collapse: separate;
border-spacing: 2px;
}
この問題の簡単な解決策は次のとおりです。
table
{
border: 1px solid #000000;
border-collapse: collapse;
border-spacing: 0px;
}
table td
{
padding: 8px 8px;
}
また、必要に応じて、のスタイルシートcellspacing="0"
を追加することを忘れないborder-collapse: collapse
でくださいtable
。
セルの内容を div でラップすると、何でもできますが、均一な効果を得るには、列内のすべてのセルをラップする必要があります。たとえば、左右のマージンを広くするには:
したがって、CSSは次のようになります。
div.cellwidener {
margin: 0px 15px 0px 15px;
}
td.tight {
padding: 0px;
}
<table border="0">
<tr>
<td class="tight">
<div class="cellwidener">My content</div>
</td>
</tr>
</table>
はい、面倒です。はい、Internet Explorer で動作します。実際、これは Internet Explorer でしかテストしていません。仕事で使用できるのは Internet Explorer だけだからです。
border-collapse: collapse
テーブルとpadding
またはth
に使用するだけtd
です。
このスタイルは、表のセルパディング、セル間隔、ボーダーを完全にリセットするためのものです。
私のreset.cssファイルにはこのスタイルがありました:
table{
border:0; /* Replace border */
border-spacing: 0px; /* Replace cellspacing */
border-collapse: collapse; /* Patch for Internet Explorer 6 and Internet Explorer 7 */
}
table td{
padding: 0px; /* Replace cellpadding */
}
TBH。CSS のすべてのファニーについては、cellpadding="0"
cellspacing="0"
非推奨ではないため、そのまま使用することもできます...
のマージンを示唆している他<td>
の人は、明らかにこれを試していません。
table th,td {
padding: 8px 2px;
}
table {
border-collapse: separate;
border-spacing: 2px;
}
テーブル データで CSS パディング ルールを使用するだけです。
td {
padding: 20px;
}
境界線の間隔:
table {
border-spacing: 1px;
border-collapse: collapse;
}
ただし、ボックス モデルの差分実装により、Internet Explorer などの古いバージョンのブラウザーで問題が発生する可能性があります。
W3C分類から私が理解していることから、<table>
sはデータを「のみ」表示するためのものであるということです。
これに基づいて、背景などを使用してを作成し、データを含むテーブルを作成する方がはるかに簡単であることがわかりまし<div>
た...position: absolute;
background: transparent;
Chrome、Internet Explorer(6以降)およびMozilla Firefox(2以降)で動作します。
マージンは、、、、またはではなく<table>
、、、<div>
などのコンテナ要素間にスペーサーを作成するために使用されます(またはとにかく意味されます)。コンテナ要素以外の目的で使用すると、将来のブラウザの更新に備えてWebサイトを調整するのに忙しくなります。<form>
<tr>
<td>
<span>
<input>
CSS:
selector{
padding:0 0 10px 0; // Top left bottom right
}
CSS padding プロパティを使用して、テーブル セル内のパディングを簡単に設定できます。これは、テーブルの cellpadding 属性と同じ効果を生み出す有効な方法です。
table,
th,
td {
border: 1px solid #666;
}
table th,
table td {
padding: 10px;
/* Apply cell padding */
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Set Cellpadding in CSS</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Row</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Clark</td>
<td>Kent</td>
<td>clarkkent@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>peterparker@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>johnrambo@mail.com</td>
</tr>
</tbody>
</table>
</body>
</html>
同様に、CSS の border-spacing プロパティを使用して、cellspacing 属性のように隣接するテーブル セルの境界線間の間隔を適用できます。ただし、境界線の間隔を機能させるには、border-collapse プロパティの値を個別にする必要があります。これがデフォルトです。
table {
border-collapse: separate;
border-spacing: 10px;
/* Apply cell spacing */
}
table,
th,
td {
border: 1px solid #666;
}
table th,
table td {
padding: 5px;
/* Apply cell padding */
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Set Cellspacing in CSS</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Row</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Clark</td>
<td>Kent</td>
<td>clarkkent@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>peterparker@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>johnrambo@mail.com</td>
</tr>
</tbody>
</table>
</body>
</html>
これを試して:
table {
border-collapse: separate;
border-spacing: 10px;
}
table td, table th {
padding: 10px;
}
またはこれを試してください:
table {
border-collapse: collapse;
}
table td, table th {
padding: 10px;
}
私!important
は国境の後に使用しました-のように崩壊します
border-collapse: collapse !important;
そしてそれはIE7で私のために働きます。これは、cellspacing属性をオーバーライドしているようです。
HTML テーブルでは、cellpadding
とは次のcellspacing
ように設定できます。
セルパディングの場合:
td/th
シンプルなcellを呼び出すだけpadding
です。
例:
/******Call-Padding**********/
table {
border-collapse: collapse;
}
td {
border: 1px solid red;
padding: 10px;
}
<table>
<tr>
<th>Head1 </th>
<th>Head2 </th>
<th>Head3 </th>
<th>Head4 </th>
</tr>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
<td>33</td>
<td>34</td>
</tr>
<tr>
<td>41</td>
<td>42</td>
<td>43</td>
<td>44</td>
</tr>
</table>
table {
border-collapse: collapse;
}
td {
border: 1px solid red;
padding: 10px;
}
セル間隔用
シンプルに呼び出すだけtable
border-spacing
例:
/********* Cell-Spacing ********/
table {
border-spacing: 10px;
border-collapse: separate;
}
td {
border: 1px solid red;
}
<table>
<tr>
<th>Head1</th>
<th>Head2</th>
<th>Head3</th>
<th>Head4</th>
</tr>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
<td>33</td>
<td>34</td>
</tr>
<tr>
<td>41</td>
<td>42</td>
<td>43</td>
<td>44</td>
</tr>
</table>
/********* Cell-Spacing ********/
table {
border-spacing: 10px;
border-collapse: separate;
}
td {
border: 1px solid red;
}
CSS ソース リンクによるその他のテーブル スタイルここでは、CSS によるその他のテーブル スタイルを取得します。
表の場合、cellspacing と cellpadding は HTML 5 で廃止されました。
セル間隔には、ボーダー間隔を使用する必要があります。また、セルのパディングには、border-collapse を使用する必要があります。
HTML5 コードでこれを使用しないようにしてください。CSS 3 ファイルでは常にこれらの値を使用するようにしてください。
スタイルをテーブル自体に直接追加するのはどうですか? これは、ページに複数のテーブルがある場合に悪いtable
方法である CSSで使用する代わりです。
<table style="border-collapse: separate;border-spacing: 2px;">
<tr>
<td style="padding: 4px 4px;">Some Text</td>
</tr>
</table>
これをお勧めします。特定のテーブルのすべてのセルが影響を受けます。
table.tbl_classname td, th {
padding: 5px 5px 5px 4px;
}