###前提・実現したいこと
テーブルの、行に対してリンクを設定したいです。
最終的に行うつもりなのは以下の2点ですが、今回質問させていただきたいのは 1 についてです。
- hover 時の背景色変更
- クリック時に javascript を実行 (show-modal)
###発生している問題
最初、tr に対して :hover を設定してみたのですが、
rowspan をしている箇所があり、一部のセルに hover した場合のみ反応させたくありません。
そもそも可能なのだろうかと思っているのですが、何か方法はあるでしょうか…
以下試したCSS (test01, test02)
rowspan している「ドリンク」セルのhoverで一行目を着色したくないです。
html
1<style> 2 table { margin-bottom:2em; border-collapse:collapse; } 3 td { border:1px solid #999; padding:0.2rem; } 4 5 /* test01 6 trのhoverで、子tdの背景色を変更 7 問題点:「ドリンク」セルのhoverで一行目を着色したくない 8 */ 9 .test01 .rowlink-tr:hover .rowlink-td { 10 background:yellow; 11 } 12 /* test02 13 tdのhoverで、自身と兄弟tdの背景色を変更 14 問題点:弟要素は着色されるが、兄要素が着色されない 15 */ 16 .test02 .rowlink-td:hover, 17 .test02 .rowlink-td:hover ~ .rowlink-td { 18 background:yellow; 19 } 20</style> 21 22<!-- test01 --> 23<table class="test01"> 24 <tr class="rowlink-tr"> 25 <td class="rowlink-td-nohover" rowspan="3">ドリンク</td> 26 <td class="rowlink-td">珈琲</td> 27 <td class="rowlink-td">210円</td> 28 <td class="rowlink-td">おかわり自由</td> 29 </tr> 30 <tr class="rowlink-tr"> 31 <td class="rowlink-td">紅茶</td> 32 <td class="rowlink-td">240円</td> 33 <td class="rowlink-td"></td> 34 </tr> 35 <tr class="rowlink-tr"> 36 <td class="rowlink-td">オレンジジュース</td> 37 <td class="rowlink-td">230円</td> 38 <td class="rowlink-td"></td> 39 </tr> 40</table> 41 42<!-- test02 --> 43<table class="test02"> 44 <tr class="rowlink-tr"> 45 <td class="rowlink-td-nohover" rowspan="3">ドリンク</td> 46 <td class="rowlink-td">珈琲</td> 47 <td class="rowlink-td">210円</td> 48 <td class="rowlink-td">おかわり自由</td> 49 </tr> 50 <tr class="rowlink-tr"> 51 <td class="rowlink-td">紅茶</td> 52 <td class="rowlink-td">240円</td> 53 <td class="rowlink-td"></td> 54 </tr> 55 <tr class="rowlink-tr"> 56 <td class="rowlink-td">オレンジジュース</td> 57 <td class="rowlink-td">230円</td> 58 <td class="rowlink-td"></td> 59 </tr> 60</table>
###試したこと
jQuery で潰せないかと思って一応試したのですが、無理でした。(まあ無理です・・・よね・・・)
javascript
1$(function() { 2 // nohover が指定されているセルでは hover を発生させない(rowspan対応) 3 $(".rowlink-td-nohover").on("mouseover mouseenter", function(e) { 4 //alert("hoge"); 5 e.preventDefault(); 6 return false; 7 }); 8});
###補足情報(言語/FW/ツール等のバージョンなど)
ひとまず IE11, Chrome で動くようにしたいです。
###その他
もうそもそもマウスカーソルを載せた時の着色を、css の :hover ではなく jQuery で処理しないと無理かな、とちょっと思ったのですが、可能であれば極力 css で実現したいです。
それはもう css では無理だよ、というご意見でも良いのでよろしくお願いします。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/02 04:29