<table class="ta01">
<thead>
<tr>
<th></th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
</tr>
</thead>
<tbody>
<tr>
<th>1</th>
<td>A1</td>
<td>B1</td>
<td>C1</td>
<td>D1</td>
<td>E1</td>
</tr>
・・・中略・・・
</tbody>
</table>
サンプル01は、tr要素のhoverでスタイルを指定しています。カーソルをtable(tbody部分)の上で動かすと、行ごとにハイライト(色はskyblue)します。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 |
| 2 | A2 | B2 | C2 | D2 | E2 |
| 3 | A3 | B3 | C3 | D3 | E3 |
| 4 | A4 | B4 | C4 | D4 | E4 |
| 5 | A5 | B5 | C5 | D5 | E5 |
table.ta01 tbody tr:hover {
background: skyblue;
}
サンプル02は、サンプル01と同様ですが、左端の行のth要素のみをハイライト(色はorange)します。tr要素のhover時に、tr要素の子要素のth要素のみにスタイルを指定しています。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 |
| 2 | A2 | B2 | C2 | D2 | E2 |
| 3 | A3 | B3 | C3 | D3 | E3 |
| 4 | A4 | B4 | C4 | D4 | E4 |
| 5 | A5 | B5 | C5 | D5 | E5 |
table.ta02 tbody > tr:hover > th {
background: orange;
}
サンプル03も、サンプル01と同様ですが、サンプル02と同じ手法で、tr要素のhover時に、tr要素の子要素のth要素の背景色をthistleに、また同じ子要素のtd要素の背景色をaquamarineにしてハイライトのスタイルを指定しています。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 |
| 2 | A2 | B2 | C2 | D2 | E2 |
| 3 | A3 | B3 | C3 | D3 | E3 |
| 4 | A4 | B4 | C4 | D4 | E4 |
| 5 | A5 | B5 | C5 | D5 | E5 |
table.ta03 tbody > tr:hover > th {
background: thistle;
}
table.ta03 tbody tr:hover > td {
background: aquamarine;
}
サンプル04は、:not疑似クラスと:first-child疑似クラス、last-child疑似クラスを組み合わせて、tbody要素のhover時に、子要素であるtr要素のうち、最初の子要素と最後の子要素を除いたすべてのtr要素(2行目から4行目まで)の子要素のtd要素の背景色をlightblueにしてハイライトしています。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 |
| 2 | A2 | B2 | C2 | D2 | E2 |
| 3 | A3 | B3 | C3 | D3 | E3 |
| 4 | A4 | B4 | C4 | D4 | E4 |
| 5 | A5 | B5 | C5 | D5 | E5 |
table.ta04 tbody:hover > tr:not(:first-child):not(:last-child) > td {
background: lightblue;
}
サンプル05は、table内のtd要素のうち、いくつかが空になっています。tbodyのhover時に、tbody要素の孫要素であるtd要素のうち空でないものを、:not疑似クラスと:empty疑似クラスを使ってハイライト(背景色はpink)します。A5は見た目は空ですが、空白が入っているため、空でないと判定されハイライトされます。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | D1 | E1 | |
| 2 | A2 | B2 | C2 | D2 | E2 |
| 3 | A3 | C3 | D3 | ||
| 4 | A4 | B4 | C4 | E4 | |
| 5 | B5 | C5 | D5 | E5 |
table.ta05 tbody:hover > tr > td:not(:empty) {
background: pink;
}
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 |
| 2 | A2 | B2 | C2 | D2 | E2 |
| 3 | A3 | B3 | C3 | D3 | E3 |
| 4 | A4 | B4 | C4 | D4 | E4 |
| 5 | A5 | B5 | C5 | D5 | E5 |
table.ta06 tbody:hover > tr > td[class] {
background: greenyellow;
}
サンプル07は、サンプル06と同じくtbodyのhover時にclass属性を持つtd要素をgreenyellowでハイライトしますが、さらにそのtd要素のうち、classの名前が空になっているものすべてをpinkでハイライトします。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 |
| 2 | A2 | B2 | C2 | D2 | E2 |
| 3 | A3 | B3 | C3 | D3 | E3 |
| 4 | A4 | B4 | C4 | D4 | E4 |
| 5 | A5 | B5 | C5 | D5 | E5 |
table.ta07 tbody:hover > tr > td[class] {
background: greenyellow;
}
table.ta07 tbody:hover > tr > td[class=''] {
background: pink;
}