繁体   English   中英

css悬停在一个不起作用的表行上

[英]css hover on a table row not working

我试图在表行上实现悬停效果,我在我的CSS上有以下代码。

.datatable tr.row:hover, .datatable tr.altrow:hover {
    color: #000;
    background-color: #FFFACD;
    background-image: url(../Images/bullet.gif);
    background-repeat: no-repeat;
}

但我认为根本没有应用。 我的问题是

  1. 为什么不起作用?
  2. 怎么纠正这个?

为清楚起见,这里是小提琴http://jsfiddle.net/naveen/UPhRE/
请不要介意CSS内的图像。 一切都很好。

您正在单个表格单元格( td )上设置背景,该单元格呈现在tr顶部。

如果您有两个选择:

1)将所有行背景样式移动到tr

2)更新你的CSS看起来像这样:

.datatable tr.row:hover td, .datatable tr.altrow:hover td {
    color: #000;
    background-color: #FFFACD;
    background-image: url(../Images/bullet.gif);
    background-repeat: no-repeat;
}

这将呈现行上的颜色: http//jsfiddle.net/R9YGw/3/

更新 :仅包括第一个单元格上的图像更新:

.datatable tr.row:hover td, .datatable tr.altrow:hover td {
    color: #000;
    background-color: #FFFACD;
}
.datatable tr.row:hover td:first-child, .datatable tr.altrow:hover td:first-child {
    background-image: url(../Images/bullet.gif);
    background-repeat: no-repeat;
}

您遇到的问题是您在td元素上设置了背景颜色,这些元素位于DOM树的下方,因此这些元素的颜色优先。

如果您将颜色应用于该行,您将看到悬停显示:

.datatable .row
{
    background-color: #FFFFFF;
}
.datatable .altrow
{
    background-color: #EDF5FF;
}

实际上,你可以悬停它,但它在旧的IE中不会很好用。 您的问题是您的初始(非悬停)颜色被分配给TD元素,而不是TR。 修改你的CSS,这样做:

.datatable tr.row:hover, .datatable tr.altrow:hover
.datatable tr.row:hover td, .datatable tr.altrow:hover td
{
    color: #000;
    background-color: #FFFACD;
    background-image: url(../Images/bullet.gif);
    background-repeat: no-repeat;
}

它工作正常。 不确定图像部分在每个TD中的外观如何,因此您可能需要对该部分进行更多调整。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM