tableの列指定で :hover 擬似クラスを使用する場合、:nth-col() 擬似クラスを使用したいところですが、2020/05/30現在、Webブラウザの実装が整っていない為、JavaScriptで代替します。
必要最低限の実装しかしていませんので、適宜改修が必要です。
- セル要素内に子要素が存在し、子要素がhoverされた場合に正しく動作しません。(改善案: 繰り返し処理でセル要素が
現れるまで
parentNodeを確認します) - セル結合されている場合、論理行/論理列を正しく認識できません。(改善案: 左上のセルから順番に走査していき、各セル要素の
colspan属性値、rowspan属性値を読み取って、論理行/論理列に該当するセル要素を算出します。ただし、3.の問題は残存しています) - 要素単位でスタイルを適用する為、結合セルの部分的な論理行/論理列にスタイルを適用する方法がありません。
:nth-col()擬似クラスが実装されるまで、この問題の解消目処は立ちません。
CSSの :hover 擬似クラスによって、hover時のスタイル適用を実装します。
Webブラウザに実装されれば、tableの列指定に、CSSの :nth-col() 擬似クラスも使用できます。
tableの列指定には、colgroup要素にJavaScriptでCSSスタイルを適用する実装とします。