CSS入門 | CSS基本プロパティ | CSSテーブル

CSSを使うと、さまざまな形のテーブルを作成できる。

テーブルには次のプロパティを使用してCSSスタイルを適用できる。

プロパティ 説明
border すべてのborderプロパティを使ったスタイルを1行で設定できる。
border-collapse テーブルの境界線を1本の線として表示するかを設定する。
border-spacing テーブル要素(th, td)間の余白を設定する。
caption-side テーブルのキャプションを設定する。
empty-cells テーブル内の空セルの境界線や背景色を表示するかどうかを設定する。
table-layout テーブルで使用されるレイアウトアルゴリズムを設定する。

borderプロパティ

borderプロパティでテーブルの境界線を設定できる。 このプロパティを指定しない場合、該当テーブルは既定で空の境界線を持つ。

<style>
    table, th, td { border: 2px solid orange; }
</style>

上の例でテーブルの境界線が2本ずつ表示される理由は、<th>タグと<td>タグがそれぞれ独自の境界線を持っているためである。 このように2本で表示される境界線を1本にするには、border-collapseプロパティを使う必要がある。

border-collapseプロパティ

border-collapseプロパティ値をcollapseに設定すると、該当テーブルの境界線は1本で表示される。 このプロパティを指定しない場合、該当テーブルは既定でテーブル要素ごとの境界線をすべて表示する。

<style>
    table, th, td { border: 2px solid orange; }
    table { border-collapse: collapse; }
</style>

border-spacingプロパティ

border-spacingプロパティは、テーブル要素(th, td)間の余白を設定する。

<style>
    table, th, td { border: 1px solid black; }
    table { width: 100%; border-collapse: seperate; border-spacing: 20px 30px; }
</style>

text-alignプロパティ

text-alignプロパティは、テーブル要素(th, td)内部でテキストの水平方向の配置を設定する。 <th>タグ内部は中央揃え、<td>タグ内部は左揃えが既定である。

<style>
    table, th, td { border: 1px solid black; }
    table { border-collapse: collapse; width: 100%; }
    th { text-align: left; }
    td { text-align: center; }
</style>

vertical-alignプロパティ

vertical-alignプロパティは、テーブル要素(th, td)内部でテキストの垂直方向の配置を設定する。 <th>タグと<td>タグはいずれも中央揃えが既定である。

<style>
    table, th, td { border: 1px solid black; }
    table { border-collapse: collapse; width: 100%; }
    th { vertical-align: top; height: 50px; }
    td { vertical-align: bottom; height: 50px; }
</style>

さまざまな形のテーブル例

CSSを使うと、HTMLの基本テーブルをより多様な見た目に設定できる。

次の例は、<th>タグと<td>タグにborder-bottomプロパティを使い、水平の区切り線だけで作ったテーブルである。

<style>
    table { border-collapse: collapse; width: 100%; }
    th, td { padding: 10px; border-bottom: 1px solid #CD5C5C; }
</style>

次の例は、:hoverセレクターを使い、<tr>タグにマウスを置くと行全体がハイライトされるようにしたテーブルである。

<style>
    table { border-collapse: collapse; width: 100%; }
    th, td { padding: 10px; border-bottom: 1px solid #CD5C5C; }
    tr:hover { background-color: #F5F5F5; }
</style>

次の例は、background-colorプロパティと:nth-childセレクターを使い、縞模様の効果を設定したテーブルである。

<style>
    table { border-collapse: collapse; width: 100%; }
    th, td { padding: 10px; }
    tr:nth-child(odd) { background-color: #F3F3F3; }
</style>