我正在尝试使用CSS更改表格行的背景颜色,但我不想更改表格标题的背景。但是,默认情况下,TH包含在TR中,因此TR规则被推送到我的TH。
如果有帮助的话,这里有一个jsfiddle来测试:
http://jsfiddle.net/jomanlk/Bcayc/
答案 0 :(得分:8)
您可以添加<thead>
和<tbody>
来区分数据行中的标题行。这样您就可以只定位所需的那些:
table tbody td:hover{
background: #f00;
}
table tbody tr:hover{
background: #00f;
}
<强> DEMO 强>
以下标记:
<table>
<thead>
<tr>
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
<th>Col 4</th>
</tr>
</thead>
<tbody>
<tr>
<td>Col 1</td>
<td>Col 2</td>
<td>Col 3</td>
<td>Col 4</td>
</tr>
</tbody>
</table>
答案 1 :(得分:1)
看起来使用thead和tbody发布了最好的方法。
或者,作为一个概念,你可以在header-tr中添加一个类,并定义静态背景颜色,放在.css中的悬停条件之后
table td:hover{
background: #f00;
}
table td:hover{
background: #00f;
}
table .nohover:hover{
background: #fff;
}
<table>
<tr class="nohover">
<td>Col 1</td>
<td>Col 2</td>
<td>Col 3</td>
<td>Col 4</td>
</tr>
<tr>
<td>Col 1</td>
<td>Col 2</td>
<td>Col 3</td>
<td>Col 4</td>
</tr>
</table>
答案 2 :(得分:1)
或每隔一行+悬停
tbody tr:nth-child(2n), tbody tr:hover{
background-color: #e3e3e3;
}