問題は、css カスケード ルールに従ってtr.alt td
より具体的であることです。tr.alt:hover
簡単な方法は、:hover
ルールがルールよりも具体的になるようにすること.alt
です。tr.alt td
これは、に変更することで実行できますtr.alt
.alt
補足として、クラスが奇数行を対象にする必要がないことを認識していますか? それを処理できる非常に便利な:nth-child()
疑似クラスがあります。ここですべてを読むことができます: http://css-tricks.com/how-nth-child-works/
これをあなたのサンプルに自由に適用しました: http://jsfiddle.net/3tV9b/私がしたことは、.alt クラスを持つすべてのセレクターを
変更tr.alt td
して削除したことだけです。tr:nth-child(2n+1)
この手法の大きな利点は、HTML の管理に煩わされる必要がないことです。必要に応じて行を追加したり削除したりでき、交互の色が機能し続けるはずです。
不利な点は (もちろん) IE でのサポートですが、これは実際には機能の損失ではなく、グレースフル デグレードの範囲内にあると思います。