除第一行(标题)外,HTML表突出显示悬停行

And*_*dez 32 html highlight hover

所有,

我有一个ASP.NET GridView,呈现给HTML表.

<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>
Run Code Online (Sandbox Code Playgroud)

我想在鼠标悬停在它上面时突出显示该行 - 除了第一行是标题.

我刚刚用JQuery弄湿了,并且用CSS(CSS2或CSS3)稍微涉足了一下.有没有一种首选的方法呢?

任何人都可以给我一个起点吗?

干杯

Andez

Chr*_*ris 70

有一种方法可以实现所需的行为,而无需分别对每一行进行分类.以下是使用CSS :not:first-child选择器在悬停时突出显示除第一个(标题)之外的每个表行的方法:

tr:not(:first-child):hover {
    background-color: red;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,IE <9不支持:not,所以要以跨浏览器的方式执行此操作,您可以使用以下内容:

tr:hover {
    background-color: red;
}
tr:first-child:hover {
    background-color: white;
}
Run Code Online (Sandbox Code Playgroud)

基本上,第一个CSS规则包括所有行.要避免突出显示第一行,可以通过选择,tr:first-child然后将其保持background-color为白色(或任何非突出显示的行的颜色)来覆盖其悬停样式.

我希望这也有帮助!

  • 请注意,如果标记为"<table> <thead> <th> foo </ th> ... </ thead> <tbody> <tr> bar </ tr> ... </ tbody,这将无效> </ table>`.如果这是你的标记使用 - 更简单 - `tbody tr:hover`选择器. (7认同)

Mor*_*ael 38

要扩展user2458978的答案,最好的方法是正确编码表.

<table>
<thead>
    <tr><th></th></tr>
</thead>
<tbody>
    <tr><td></td></tr>
    <tr><td></td></tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

然后CSS很简单

table tbody tr:hover { background-color: red; }
Run Code Online (Sandbox Code Playgroud)

这是一个jsFiddle示例

  • 这是拥有表的正确方法,因此这是最佳答案。 (3认同)
  • 对不起 - 现在可能为时已晚.您的小提琴示例中的CSS略有偏差,.hover table tbody tr:hover {background-color:red; 应该只是.hover tbody tr:hover {background-color:red; 因为表不是具有类.hover的元素的子元素 (2认同)

Chr*_*ris 17

您可以使用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>
Run Code Online (Sandbox Code Playgroud)

CSS:

.notfirst:hover {
    background-color: red;
}
Run Code Online (Sandbox Code Playgroud)


小智 11

1. 将标题tr放在thead标记内

2. 将其他tr放在tbody标签内

3. 使用以下css

table tr:not(thead):hover {
    background-color: #B0E2FF;
}
Run Code Online (Sandbox Code Playgroud)

  • 这样做对我来说:`table tbody tr:hover {background-color:#B0E2FF; }` (10认同)