【CSS】display: tableを使ってテーブルを作成する方法

HTMLのdivタグを使用してCSSで表を作成する方法について解説します。

スポンサーリンク

HTML

HTMLの基本的な構造を定義します。divタグを使用して、テーブル、行、セルを表現します。

<div class="table">
  <div class="row">
    <div class="cell">Row 1, Cell 1</div>
    <div class="cell">Row 1, Cell 2</div>
  </div>
  <div class="row">
    <div class="cell">Row 2, Cell 1</div>
    <div class="cell">Row 2, Cell 2</div>
  </div>
</div>

CSS

CSSを設定して、divタグが表のように見えるようにします。

.table {
  display: table;
  width: 100%;
  border-collapse: collapse;
}

.row {
  display: table-row;
}

.cell {
  display: table-cell;
  padding: 10px;
  border: 1px solid #000;
}

/* ヘッダー用のスタイル(必要に応じて) */
.header {
  background-color: #f2f2f2;
  font-weight: bold;
}

完成したコード

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Table Example</title>
<style>
  .table {
    display: table;
    width: 100%;
    border-collapse: collapse;
  }

  .row {
    display: table-row;
  }

  .cell {
    display: table-cell;
    padding: 10px;
    border: 1px solid #000;
  }

  .header {
    background-color: #f2f2f2;
    font-weight: bold;
  }
</style>
</head>
<body>

<div class="table">
  <div class="row header">
    <div class="cell">Header 1</div>
    <div class="cell">Header 2</div>
  </div>
  <div class="row">
    <div class="cell">Row 1, Cell 1</div>
    <div class="cell">Row 1, Cell 2</div>
  </div>
  <div class="row">
    <div class="cell">Row 2, Cell 1</div>
    <div class="cell">Row 2, Cell 2</div>
  </div>
</div>

</body>
</html>
Header 1
Header 2

Row 1, Cell 1
Row 1, Cell 2

Row 2, Cell 1
Row 2, Cell 2

  • .tableクラスで全体をテーブルレイアウトに設定します。
  • .rowクラスで各行を定義します。
  • .cellクラスで各セルを定義します。
  • .headerクラスは、ヘッダー行のスタイルを設定するために使用されます(オプション)。

必要に応じて、スタイルや構造をカスタマイズして、より複雑な表を作成することも可能です。

よくある質問(FAQ)

Q. CSSのdisplay: tableでテーブルレイアウトを作るには?
A. parentにdisplay: table、子にdisplay: table-row、孫にdisplay: table-cellを設定します。HTMLのtable/tr/td構造と同様のレイアウトが実現できます。
Q. display: tableとHTML tableタグの違いは何ですか?
A. HTMLのtableはセマンティックに表形式データを示します。display: tableはCSSで任意のHTML要素をテーブルのように配置するためのものです。表形式データにはHTMLのtableタグを使うべきです。
Q. display: tableでセル間のスペースを設定するには?
A. border-spacingプロパティで設定できます。例:display: tableの要素にborder-spacing: 10pxを設定すると各セル間に10pxのスペースが生まれます。