【CSS】初心者でも簡単にできる!角丸のtableを作成する方法

  • URLをコピーしました!

こんにちは。すずきです。
本記事ではCSSで角丸のテーブルを作成する方法を紹介します。

このような人にオススメ
  • 角丸のテーブルを作成する方法が分からない。
  • 自分で角丸のテーブルを作ろうとするとなぜかうまくいかない。
  • 既存のテーブルを角丸にする方法が分からない。
目次

角丸テーブルが上手くできない原因

「角を丸くする」となるとまず思いつくのがborder-radiusと思うのですが、<table>タグに指定しても上手く反映されない方も多いと思います。

border-radiusを指定しても角が丸くならない…

実はborder-collapse: collapse;の指定があると<teble>の角は丸くなりません。
自分で指定したつもりがなくても、リセットCSSで指定されている場合があります。

なので角丸テーブルを作成する場合は、まずborder-collapse: collapse;を変更するところから始めます。

それでは、次から具体的な実装方法を解説していきます。

角丸テーブルの実装方法

HTMLを記述する

まずはHTMLを作成します。
ここは特に意識することはなく、普段と同じように記述して大丈夫です。

今回の例で記述したコードは以下になります。

<table class="table__round">
  <thead>
    <tr>
      <th>タイトル1</th>
      <th>タイトル2</th>
      <th>タイトル3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>テキスト1</td>
      <td>テキスト2</td>
      <td>テキスト3</td>
    </tr>
    <tr>
      <td>テキスト1</td>
      <td>テキスト2</td>
      <td>テキスト3</td>
    </tr>
    <tr>
      <td>テキスト1</td>
      <td>テキスト2</td>
      <td>テキスト3</td>
    </tr>
  </tbody>
</table>

CSSを記述する

border-collapseを指定

まずは先ほど書いたborder-collapseを指定を指定します。
border-collapseセル同士の隙間を指定するプロパティで、collapseで隙間無し、separateで隙間有りになります。

collapseでは角が丸くならないので、separateを指定します。

  .table__round {
    border-collapse: separate;
  }

border-spacingを指定する

border-collapse: separate;を指定したことで、セル同士に隙間ができてしまったかと思います。

なので次はセル同士の隙間を直していきます。
セル同士の隙間は、border-spacingで指定することができますので、0を指定します。

  .table__round {
    border-spacing: 0;
  }
これで、セル同士の隙間がなくなりました!

borderを記述する

次に枠線を記述していきますが、border-collapse: separate;を指定している場合、線が重複します。

th,td {
  border-top: solid 1px red;
  border-left: solid 1px red;

  border-bottom: solid 1px blue;
  border-right: solid 1px blue;
}

今回は例として、上と左は赤、下と右は青のborderを各セルに入れています。
セル同士重なる部分はborderも重複し、紫がかっています。

重複しないよう注意しながら、borderを指定していきます。
今の例から、赤い線を消すイメージです!

.table__round {
  border-top: solid 1px lightgray;
  border-left: solid 1px lightgray;
}
.table__round th,
.table__round td {
  border-bottom: solid 1px lightgray;
  border-right: solid 1px lightgray;
}

各セルの下と右にborderを指定し、<table>タグの上を左にもborderを指定しています、

border-radiusを指定する

最後に角を丸くしていきます。
border-radiusを指定するのは以下の2ヶ所です。

  • <table>タグ
  • 各角のセル
.table__round {
  border-radius: 1rem;
}
.table__round thead tr:first-child th:first-child {
  border-top-left-radius: 1rem;
}
.table__round thead tr:first-child th:last-child {
  border-top-right-radius: 1rem;
}
.table__round tbody tr:last-child td:first-child {
  border-bottom-left-radius: 1rem;
}
.table__round tbody tr:last-child td:last-child {
  border-bottom-right-radius: 1rem;
}

これで、以下のような角丸のテーブルが作成できたと思います。
完成品のコードもこちらにまとめています。

See the Pen 【CSS】角丸テーブルの作り方 by すずき (@k-suzuki3533) on CodePen.

終わりに

CSSで角丸のテーブルを作成する際のポイントは以下の通りです。

  1. border-collapse: separate;を指定し、角が丸くなるようにする
  2. border-spacingを指定し、セル同士の隙間を無くす
  3. 線が重複しないようborderを指定する
  4. <table>タグと各角のセルの両方にborder-radiusを指定する

本記事で紹介した方法を実践すれば、初心者でも簡単に角丸のテーブルを作成できます。ぜひお試しください!

Web制作に使えるおすすめの書籍

私が実際に購入して役に立った書籍を紹介します。
気になる本があればぜひ読んでみてください!

  • URLをコピーしました!
目次