タイトルだけでは分かりにくいですが、結論から言うとこういったデザインです。

See the Pen table : separate border by netamame (@netamame) on CodePen.


行(tr)の上下にホーダーを引きつつ、td要素の間に「上下に隙間が空いた区切り線」を入れています。

一見、table に以下の様なCSSを指定すれば何とかなりそうな表現ですが、 border-collapse: separate; を指定してしまうと、行(tr)にborderは指定できません。

/* これは間違い */
border-collapse: separate; /* セルのボーダーに間隔をあける */ 
border-spacing : (任意の数値) ; /* 枠線同士の間隔を指定 */

方法

tableに用意されている枠線は使用せず、span要素を使って区切り線を入れてみます。
この方法だと、line-heightで線の高さも変更することができます。

<table>
  <tbody>
    <tr>
      <td>見出し1</td>
      <td><span class="border">内容1</span></td>
    </tr>
    <tr>
      <td>見出し2</td>
      <td><span class="border">内容2</span></td>
    </tr>
  </tbody>
</table>
table {
  margin:50px auto;
  border-collapse: collapse;
  line-height:1.7;
}

table td {
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
}

/* 見出し */
table td:first-child {
    text-align: center;
    padding: 40px 0 40px 40px;
}

/* 内容 */
table td:last-child {
  padding: 40px;
  border-bottom: 1px solid #000;
}

.border {
    border-left: 1px solid #f00;
    padding-left: 40px;
    display: block;
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です