我的代码如下:
.outer tr td {
background-color: rgba(255, 0, 0, 0.5);
/*red*/
}
.inner tr td {
background-color: rgba(0, 0, 255, 0.5);
/*blue*/
}
.outer tr td:hover {
background-color: rgba(0, 255, 0, 0.25);
/*green*/
}

<table class="outer">
<tr>
<td>
<table class="inner">
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>
<table class="inner">
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
</td>
<td></td>
</tr>
</table>
&#13;
主要问题是,当我将我的内部table
td
悬停时,会显示绿色。如果我使用普通rgb()
或十六进制颜色,问题可能无法到达。我有目的地需要透明度。帮助我,以便我的内心td
在我的悬停时不会变成绿色。
每行td
都有类名。我使用ajax
使用jquery
操作使用类名。所以,我无法改变类名。这不是我的实际表格。如果我必须使用他们的班级名称将css
应用于我的所有td
,那么这将使我的客户成为&#39;浏览器有一段时间加载。请帮助我使用css
编码忽略父母的样式。或者找到一种方法来样式化table
而不是其子table
。谢谢。
答案 0 :(得分:1)
如果我正确理解你的问题......
inner
表位于outer
表内,这意味着
.outer tr td:hover {
background-color: rgba(0, 255, 0, 0.25);
/*green*/
}
将鼠标悬停在<td>
内的.inner
上时,仍然有效。您还需要覆盖.inner tr td:hover
以撤消.outer tr td:hover
完成的颜色更改:
.inner tr td:hover {
background-color: rgba(0, 0, 255, 0.5);
/*blue*/
}
答案 1 :(得分:0)
table {
border-collapse: collapse;
}
td, th {
border: 1px solid #999;
padding: 0.5rem;
text-align: left;
}
th{
background: #3d3d3e;
color:#fff;
}
FIDDLE
答案 2 :(得分:0)
虽然已经提供了答案,但我认为您应该了解CSS Cascades。使用:not可以排除内部类继承外部类CSS。例如:
.outer tr td:not(.inner):hover {
background-color: rgba(0, 255, 0, 0.25);
/*green*/
}