tr全体にhover指定したいのに一部のtdが適用されないとき
インターネット初心者が仕事中にハマったので備忘録がてら
やりたいこと
tableタグのとある行にマウスが触れたとき(:hover)、行全体の背景色を変えたい。
問題
一部のセルにクラスで背景色を指定しているので、その部分だけ:hoverで背景色を指定しても適用されない。
ソースコード
- HTML
<table class="tbl"> <tbody> <tr> <td></td> <td></td> <td class="a"></td> <td class="a"></td> </tr> <tr class="b"> <td></td> <td></td> <td></td> <td></td> </tr> </tbody> </table>
.tbl td.a { background-color: yellow; } tbody tr.b { background-color: green; } /* 修正前:マウスが触れた行の背景色を変える */ .tbl tbody tr:hover { background-color: blue; } /* 修正後:マウスが触れた行のすべてのセルの背景色を変える */ .tbl tbody tr:hover td{ /* ←tdを付け足す */ background-color: blue; }