Css悬停不起作用

时间:2013-04-19 19:14:29

标签: html css html-table hover

这是我的代码。我做了这个 - 当我悬停表格单元格然后它的背景图像发生变化时,这很容易。 但是我想在第一个表格中使用class =“down”将单元格5悬停在第二个表格中,然后第二个表格显示属性从无变为阻止 我搜索了这个,我最终得到了所有这些代码,但它无法正常工作。 我需要使用没有JavaScript的纯CSS。 问题出在哪里,我做错了什么?

HTML

  <table border="0" class="table">
    <tr>
      <td>1</td>

      <td>2</td>

      <td>3</td>

      <td>4</td>

      <td class="down">5</td>
    </tr>
  </table>

  <table border="0" class="table2">
    <tr>
      <td>row2</td>
    </tr>

    <tr>
      <td>row3</td>
    </tr>
  </table>

CSS

.table
{
    left:200px;
    position:absolute;
}

td
{
    background-image:url(poga1.png);
    height:70px;
    width:100px;
}

td:hover
{
    -webkit-transition:1s;
    background-image:url(poga2.png);
}

.table2
{
    display:none;
    left:616px;
    position:absolute;
    top:77px;
}

.down:hover .table2
{
    display:block;
}

2 个答案:

答案 0 :(得分:0)

.down:hover .table2行正在寻找一个内容为table2 的元素一个类为down的元素。如果您的表是嵌套的,那么您只能在纯CSS中执行所需的操作。以下是使用jQuery执行所需操作的方法:

$(document).ready(function() {
    $('.down').hover(function() {
        $('.table2').show();
    }, function() {
        $('.table2').hide();
    });
});

以下是演示:http://jsfiddle.net/mchail/b6PKT/

我在td元素上添加了一个边框,因此您可以更轻松地查看悬停事件何时触发。

答案 1 :(得分:0)

除非Table2是Table1的子级,否则你不能用CSS真正做到这一点。尽管如此(在本例中使用jQuery),它可以很容易地用JavaScript完成。看看我的例子:

http://jsfiddle.net/Pb8dw/1/

$(document).ready(function() {
    $(".down").mouseover(function(){
        $(".table2").show();
    });

    $(".down").mouseout(function(){
        $(".table2").hide();
    });
});

这是在悬停时执行隐藏/显示的代码块。我冒昧地更新了您的源代码,因此更容易看到。

更新:如果你绝对,积极地,必须在没有JavaScript的情况下做到这一点,这就是如何用CSS和HTML来解决这个问题:

http://jsfiddle.net/Pb8dw/2/