カテゴリー
【Sass基礎講座】Scssで見やすいフレキシブル対応の表(table)を作成する
※ 当ページには【広告/PR】を含む場合があります。
2023/11/05
1. フレキシブル対応させて、どんなブラウザからでも見やすくする
2. マウスホバーやフォーカス時、選択要素にハイライトで強調する
表をフレキシブル対応させる
<table>
<thead>
<tr>
<td></td>
<th scope="col">内容</th>
<th scope="col">学費(年額)</th>
</tr>
</thead>
<tbody>
<tr>
<th>Hoge大学</th>
<td data-label="内容" class="txt">Hogeを目指す人向けのHoge学部のある人気校</td>
<td data-label="学費(年額)" class="price">¥320,000</td>
</tr>
<tr>
<th>Piyo短期大学</th>
<td data-label="内容" class="txt">最短でPiyoの資格がとれる専門短期教育が強み</td>
<td data-label="学費(年額)"class="price">¥488,000</td>
</tr>
<tr>
<th>Fuga医療大学</th>
<td data-label="内容" class="txt">国内で唯一の最先端のFuga医療がじっくり学べるFuga専門学校</td>
<td data-label="学費(年額)"class="price">¥785,000</td>
</tr>
</tbody>
</table>
table {
border-collapse: collapse;
margin: 0 auto;
padding: 0;
width: 600px;
tr {
background-color: #fff;
border-bottom: 2px solid #fff;
&:nth-child(even) {background-color: #eee;}
}
th, td { padding: .35rem 1rem; }
thead tr {
background-color: #625223;
color: #fff;
th {
font-size: .85rem;
padding: 1rem;
}
}
tbody tr {
th {
text-align: left;
font-size: .8rem;
}
.txt { text-align: left; }
.price {
text-align: right;
font-weight: bold;
color: #ff5400;
}
}
}
600px
table {
border-collapse: collapse;
margin: 0 auto;
padding: 0;
width: 600px;
tr {
background-color: #fff;
border-bottom: 2px solid #fff;
&:nth-child(even) {background-color: #eee;}
}
th, td { padding: .35rem 1rem; }
thead tr {
background-color: #625223;
color: #fff;
th {
font-size: .85rem;
padding: 1rem;
}
}
tbody tr {
th {
text-align: left;
font-size: .8rem;
}
.txt { text-align: left; }
.price {
text-align: right;
font-weight: bold;
color: #ff5400;
}
}
}
//👇ここから追加
@media screen and (max-width: 600px) {
table {
border: 0;
width: 100%;
th {
background-color: #625223;
display: block;
border-right: none;
}
tr {
display: block;
margin-bottom: .65rem;
border: 1px solid #625223;
&:nth-child(even) { background-color: #fff; }
}
td {
border-bottom: 1px dotted #bbb;
display: block;
font-size: .8rem;
text-align: right;
position: relative;
padding: 1.5rem 1rem 1.5rem 4rem;
border-right: none;
&::before {
content: attr(data-label);
font-weight: bold;
position: absolute;
left: 10px;
color: #000;
}
&:last-child { border-bottom: 0; }
}
thead {
border: none;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
tbody th {
color: #fff;
padding: 1rem;
}
}
}
@media screen and (max-width: 600px) {...
width <= 600px
ホバー時に選択要素をハイライトさせる
tbody
tr
table {
margin: 0 auto;
width: 600px;
font-size: 0.9rem;
th, td {
padding: 0.2rem;
transition: 0.2s;
color: #111;
background-color: #fff;
}
tbody {
th {
font-weight: bold;
}
&:hover {
th, td {
color: #77735a;
background-color: #fff;
}
tr:hover {
th, td {
color: #f74016;
background-color: #fff0c1;
}
}
}
}
}
まとめ
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー