レスポンシブWebデザインでテーブルを使う時の小技

ADRさんで一番上のデモを使いました。

rowspanがある場合に。

class="none"
.none{
    display: none;
}

がカギです。

レスポンシブのTableタグ(rowspan使用)


<table id="table">
  <thead>
    <tr>
      <th>グループ名</th>
      <th>定員</th>
      <th>所在地</th>
      <th>代表者名</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>Aグループ</th>
      <td rowspan="5">20名</td>
      <td>東京都</td>
      <td>山田 太郎</td>
    </tr>
    <tr>
      <th>Bグループ</th>
      <td class="none">20名</td>
      <td>神奈川</td>
      <td>田中 一郎</td>
    </tr>
    <tr>
      <th>Cグループ</th>
      <td class="none">20名</td>
      <td>北海道</td>
      <td>常山 光</td>
    </tr>
    <tr>
      <th>Dグループ</th>
      <td class="none">20名</td>
      <td>大阪</td>
      <td>西村 達郎</td>
    </tr>
    <tr>
      <th>Eグループ</th>
      <td class="none">20名</td>
      <td>岡山</td>
      <td>浜田 浩二</td>
    </tr>
  </tbody>
</table>

#table{
	width: 500px;
	margin: 0 auto;
	border-collapse: collapse;
}
#table td,
#table th{
	padding: 5px;
	border: 1px solid #ccc;
}
#table th{
	font-weight: bold;
}
#table thead th{
	background:#e6e6e6;
}
#table tbody th{
	text-align: left;
}
.none{
	display: none;
}

@media only screen and (max-width:480px){
	#table{
		width: 90%;
		display: block;
	}
	#table thead{
		display: none;
	}
	#table tbody{
		display: block;
	}
	#table tbody tr{
		display: block;
		margin-bottom: 1.5em;
	}
	#table tbody th,
	#table tbody td{
		display: list-item;
		border: none;
	}
	#table tbody th{
		margin-bottom: 5px;
		list-style-type: none;
		color: #fff;
		background: #000;
	}
	#table tbody td{
		list-style-type: none;
		padding: 0;
	}
	#table tbody td:nth-of-type(n):before{
		color: #999;
		margin: 0 10px 0 0;
	}
	#table tbody td:nth-of-type(1):before { content: "定員:"; }
	#table tbody td:nth-of-type(2):before { content: "所在地:"; }
	#table tbody td:nth-of-type(3):before { content: "代表者名:"; }
}