ホームページ制作のためになるTopics

レスポンシブでテーブルを使うときの便利なCSS

最近、レスポンシブでのサイト制作が主流になってきていますね。
また、既存のPCサイトをレスポンシブ化して欲しい。というご要望も少なくないと思います。
そんな時に困るのが、テーブルの表示です。

今回は、そんなテーブルコーディング部分をスマホで見た場合にリスト風表示に変換できるCSSをご紹介します。
jQueryも不要!CSSだけで、できます!

まずは、コピペで!

CSS

.ResTableA{
	width:100%;
	border-collapse: collapse;
	border-spacing: 0;
	border: 1px solid #d8d8d8;
}

.ResTableA th{
	-moz-box-sizing: border-box;     /* box-size[border・padding 込み] */
	box-sizing: border-box;     /* box-size[border・padding 込み] */
	border: 1px solid #d8d8d8;
	padding: 15px 10px 12px;
	width: 30%;
	font-style: normal;
	font-weight: bold;
	text-align: center;
	vertical-align:middle;
	background-color: #f0f0ef;
}

.ResTableA td{
	padding: 15px 10px 12px;
	text-align: left;
	vertical-align: top;
	border-top: dotted 1px #d8d8d8;
}

@media (max-width: 479px){
.ResTableA{
	border-bottom:none;
}
.ResTableA th{
	padding: 5px 10px;
	width:100%;
	display:block;
	margin: 0 auto;
	border:none;
	text-align: left;
}
.ResTableA td{
	padding: 5px 10px;
	width:100%;
	display: list-item;     /* リストに変換 */
	list-style:none;     /* リストに変換によるドットを非表示 */
	border-top: none !important;
	border-bottom:1px solid #d8d8d8;
}
}

ブレイクポイントは、一般的なスマホの横幅(320px〜479px)の最大値に設定しています。
つまり、縦位置表示で、リスト風に。横位置表示では、PCと同様のテーブル表示になります。

続いてHTMLです。

HTML

<table class="ResTableA">
<tr>
<th>社名</th>
<td>株式会社 ◯◯◯◯</td>
</tr>
<tr>
<th>代表取締役</th>
<td>◯◯ ◯◯</td>
</tr>
<tr>
<th>所在地</th>
<td>◯◯◯◯◯◯◯◯</td>
</tr>
</table>

これだけで、テーブルをレスポンシブ化できます。
CSSの「display: list-item;」というのが、キーポイントです。
あとは、それぞれ、お好みで装飾してください。

DEMO

社名 株式会社 ◯◯◯◯
代表取締役 ◯◯ ◯◯
所在地 ◯◯◯◯◯◯◯◯

PCでご覧頂いている方、ブラウザをグググ〜っと縮めてみてください。
表示が変わったと思います。

その他のTopics