CSSのみでレスポンシブなテーブルデザインを。
サンプルページ
まずはサンプルから。
内容としてはCSSだけでモバイル環境の場合にテーブルのデザインを変えるというもの。
>>REDLINE MAGAZINE | レスポンシブ対応テーブルサンプル

ネタ元のCODEPENページ。
ソース
自分とこのサンプルからソース部分を。まずはhtmlソース。
<table>
<thead>
<tr>
<th>イベント名</th>
<th>開催日</th>
<th>場所</th>
<th>料金</th>
</tr>
</thead>
<tbody>
<tr>
<td data-label="イベント名">なんたらイベント</td>
<td data-label="日時">2015/04/08(水) </td>
<td data-label="場所">大阪府大阪市どこどこ</td>
<td data-label="料金">1,000円</td>
</tr>
<tr>
<td data-label="イベント名">かんたらイベント</td>
<td data-label="日時">2015/04/09(木)</td>
<td data-label="場所">兵庫県神戸市どこどこ</td>
<td data-label="料金">1,000円</td>
</tr>
</tbody>
</table>
次に肝心のcssソース。
table{
width:100%;
border-collapse:collapse;
border-spacing:0;
border:1px solid #ccc;
padding:0;
margin:0;
}
table tr{
border:1px solid #ddd;
padding:5px;
}
table th, table td{
padding:10px;
text-align:center;
}
table th{
font-size:14px;
letter-spacing:1px;
}
@media screen and (max-width: 600px) {
table{
border:0;
}
table thead{
display:none;
}
table tr{
margin-bottom:10px;
display:block;
border-bottom:2px solid #ddd;
}
table td{
display:block;
text-align:right;
font-size:13px;
border-bottom:1px dotted #ccc;
}
table td:last-child{
border-bottom:0;
}
table td:before {
content:attr(data-label);
float:left;
font-weight: bold;
}
}
ポイントはcontent:attr()の利用
contentプロパティは:before擬似要素や:after擬似要素にコンテンツを挿入する際に使用するプロパティ。content:attr()は関数型の値で括弧内に指定した属性名の値が入ります。
:before擬似要素や:after擬似要素を利用したCSSネタなんかも最近はよく見かけますが、ツールチップの矢印だったり、アイコンフォントを入れるためだったりのお話が多いので、個人的には「content:attr()」ってのは盲点でした(;´Д`)
CSSでやってる事は、テーブルの各要素の装飾、@mediaでモバイル端末用のテーブルの見た目を適した形へ整える。theadの内容は必要ないので非表示に、th要素とtd要素をblock化、そして今回のサンプルでは予めtd要素にdata-labelというカスタムデータ属性を付けているのでcontent:attr()でその内容を表示させています。
cssのソースも比較的スッキリしたものなので、使いやすそうだなと思いました(*´ω`*)

この記事へのコメントが2 件あります。
めちゃくちゃ勉強になりました!ありがとうございました!