假设我有下表:
+----------+
| A | B |
+----------+
| 1 | 2 |
+----------+
我想这样做,当我将鼠标悬停在A
1
获得某些css样式时,B
和2
同上。有没有办法在不使用js的情况下执行此操作?
答案 0 :(得分:2)
使用这个标记和纯CSS,这是不可能的,因为您需要使用td:hover
在鼠标悬停时应用CSS规则,并且没有选择器可以让您沿着DOM树向上移动(这是必要的你想要生活在与被徘徊的分支不同的分支中的细胞。
如果你可以修改那么像Dustin这样的解决方案可以工作;如果你可以使用JS,那么桌子上的sprinkling a little jQuery也是一个问题:
$("td").on("mouseenter mouseout", function() {
var $this = $(this);
$this.closest("table").find("td:nth-child(" + ($this.index() + 1) + ")")
.toggleClass("hover");
});
答案 1 :(得分:1)
如果你可以改变标记,这里有一个响应jsfiddle用CSS做这个。
编辑:啊,但我看到你回复了我的评论并说你不想。无论如何,如果你重新考虑,只是一个想法。答案 2 :(得分:0)
你可以创建一个名为.hover的类,并且这样做是为了将样式添加到具有相同类的所有td
$("td.fir").bind("mouseenter", function(){
$(".fir").addClass("hover");
});
$("td.fir").bind("mouseleave", function(){
$(".fir").removeClass("hover");
});
答案 3 :(得分:0)
嗨,你可以这样做
<强>的CSS 强>
td {
position: relative;
border: 1px solid black;
padding: 50px;
}
tr .fir{
background:red;
}
table:hover .fir{
background:green;
}
<强> HTML 强>
<table>
<tr>
<td class="fir">a</td>
<td class="sec">b</td>
</tr>
<tr>
<td class="fir">1</td>
<td class="sec">2</td>
</tr>
</table>