Spa*_*ile 6 css html-table hover
使用CSS在鼠标悬停时更改表格中行的背景颜色非常简单:
.HighlightableRow:hover
{
background-color: lightgray;
}
Run Code Online (Sandbox Code Playgroud)
还有一些HTML:
<table>
<tr class=HighlightableRow>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<tr>
<tr class=HighlightableRow>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<tr>
</table>
Run Code Online (Sandbox Code Playgroud)
偶尔,当我将鼠标悬停在其中任何一个上时,我想突出显示一对行.例如,当在表格中显示工作单列表时,我会有一行包含创建者,创建日期,紧急程度等,第二行除了要求的工作外.
除了使用JavaScript onmouseover/onmouseout事件处理程序之外,还有什么方法可以像上面显示的那样创建这种效果吗?最好使用CSS.
小智 21
使用tbody元素对行进行分组.
tbody:hover { background:#eee;}
Run Code Online (Sandbox Code Playgroud)
HTML:
<table>
<tbody>
<tr>
<td>Hello</td>
<td>World!</td>
</tr>
<tr>
<td>Hello</td>
<td>World!</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
查看有关"tbody","thead"和"tfoot"的详细信息以了解正确的用法.
如果你满足于突出显示下一行,这实际上非常简单.
tr:hover, tr:hover + tr {
background:#eee; }
Run Code Online (Sandbox Code Playgroud)
+如果匹配您的类型,则css 选择器仅选择立即跟随的元素.所以在这种情况下,它会突出显示当前行以及下一行.
当然,有一些限制,如果你想要分组两个,因为你不能做"这一行和前一个".在这种情况下,我可能会将这两行嵌套在第一行内的新表中.合理?
编辑:这样的事情
HTML
<table>
<tr>
<td>
<table>
<tr>
<td>Hello</td>
<td>World!</td>
</tr>
<tr>
<td>Hello</td>
<td>World!</td>
</tr>
</table>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
CSS
tr:hover tr { background:#eee; }
Run Code Online (Sandbox Code Playgroud)
工作小提琴