すべて、
HTMLテーブルにレンダリングされるASP.NET GridViewがあります。
<table>
<tr><th>Col 1 Head</th><th>Col 2 Head</th></tr>
<tr><td>Data 1</td><td>Data 2</td></tr>
<tr><td>Data 3</td><td>Data 4</td></tr>
</table>
マウスをその上に置いたときに行を強調表示したい-ヘッダーである最初の行を除く。
JQueryで頭がいっぱいになり、CSS(CSS2またはCSS3)で少し手を出したばかりです。これを行うための好ましい方法はありますか?
誰もがこれの出発点を教えてもらえますか?
乾杯
アンデス
これを行うには、CSS :hover
指定子。デモは次のとおりです。
<table>
<tr><th>Col 1 Head</th><th>Col 2 Head</th></tr>
<tr class = "notfirst"><td>Data 1</td><td>Data 2</td></tr>
<tr class = "notfirst"><td>Data 3</td><td>Data 4</td></tr>
</table>
CSS:
.notfirst:hover {
background-color: red;
}
各行を個別に分類することなく、目的の動作を実現する方法があります。 CSS :not
および:first-child
セレクターを使用して、ホバーの最初の行(ヘッダー)を除く各行を強調表示する方法は次のとおりです。
tr:not(:first-child):hover {
background-color: red;
}
残念ながら、IE <9は:not
をサポートしていません。そのため、クロスブラウザでこれを行うには、次のようなものを使用できます。
tr:hover {
background-color: red;
}
tr:first-child:hover {
background-color: white;
}
基本的に、最初のCSSルールにはall rowsが含まれます。最初の行が強調表示されないようにするには、tr:first-child
で選択し、background-color
を白(または強調表示されていない行の色)のままにしてホバースタイルをオーバーライドします。
私もそれが役に立てば幸いです!
User2458978の答えを拡大するには、テーブルを正しくコーディングするのが最善の方法です。
<table>
<thead>
<tr><th></th></tr>
</thead>
<tbody>
<tr><td></td></tr>
<tr><td></td></tr>
</tbody>
</table>
次に、CSSは単純に
table tbody tr:hover { background-color: red; }
1.
ヘッダーtrを広告タグ内に配置します
2.
tbodyタグ内に他のtrを配置します
3.
次のCSSを使用
table tr:not(thead):hover {
background-color: #B0E2FF;
}
JQueryを使用して、クラスをtdの親要素に追加します(thを選択しないでください)
$('td').hover(function(){
$(this).parent().addClass('highlight');
}, function() {
$(this).parent().removeClass('highlight');
});
次に、CSSクラスを追加します
.highlight {
background:red;
}
最初の行にTHタグを使用し、それを行います:
th {
background-color:#fff;
}
他のすべての行の場合:
tr:not(:first-child):hover {
background-color:#eee;
}
または
tr:hover td {
background-color:#eee;
}
なぜ単純に使用しないのですか
tr>td:hover {
/* hover effect */
background-color: lightblue;
}
これは、tdが内部にあるテーブル行にのみ影響し、thが内部にあるテーブル行には影響しません。すべてのブラウザで動作します。乾杯、みんな。
次のようなものはなぜですか:
tr:first-child ~ tr { background-color:#fff; }
要件として、ヘッダー行を除くすべての偶数行を強調表示する必要があります。
したがって、この答えは上記の質問には適さない可能性があります。
それでも、他の誰かが検索エンジン検索でこのページに出会った場合に誰かが私の答えを使用できることを期待して、ここで私の答えを与えています。
私の答えは:
$("#tableName tr:even").not("tr:nth(0)").addClass("highlight");