【问题标题】:How to remove hover effect from a column of a table如何从表格的列中删除悬停效果
【发布时间】:2012-12-12 04:38:14
【问题描述】:

我是新来的,这是我在这个领域的第一个问题。

我使用 HTML、CSS 制作了一个表格。这是表格:http://abidhasan.zxq.net/table/table-others.html

如果我们将鼠标保持在一行上,那一行就会发生悬停效果。甚至,如果我们将鼠标放在图标/价格上,价格的文本和第一列的文本将是粗体的,以便可以很容易地理解哪一行的哪一列,我实际上一直保持鼠标: https://www.dropbox.com/s/q8acafxu3yhefj0/table.png

一切都很好。但是,我遇到了一个问题。

(1)如果我将鼠标保持在第二行,最后一列也会获得悬停效果。但是,我不想那样。我想,如果我把鼠标放在第二行,最后一列就不会悬停。

(2)当我将鼠标放在最后一列时,它会得到悬停效果,很好。但是,与此同时,第二行也获得了悬停效果。我也不想要这个。我想要这样,当我将鼠标放在最后一列时,只有最后一列会获得悬停效果,其他行/列都不会获得悬停效果,我该怎么做?

我的表结构:

<table class = "table-4">
  <tr>
      <th>Tapered Triangle</th>
      <th>Diameter 8'</th>
      <th>Diameter 10'</th>
      <th>Diameter 12'</th>
      <th>Diameter 14'</th>
      <th>Diameter 15'</th>
      <th>Diameter 16'</th>
   </tr>
   <tr>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>      
      <td></td>
      <td></td>
      <td rowspan = "5"></td>
   </tr>
   <tr>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
   </tr>
   <tr>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
   </tr>
   <tr>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
   </tr>
   <tr>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
   </tr>
</table>

主要是我在第二行遇到问题:

<tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>      
   <td></td>
   <td></td>
   <td rowspan = "5"></td>
</tr>

以及第二行的最后一列

<td rowspan = "5"></td>

如果可能,请尝试通过 CSS 提供解决方案。如果 CSS 无法实现,而您使用 Javascript/jQuery 提供解决方案,请告诉我详细信息,因为我不是 Javascript/jQuery 专家。如果您使用 CSS3 提供解决方案,请告诉我如何满足跨浏览器兼容性的需求。我在这里真的很新。所以,请原谅我的任何错误。感谢大家看到我的问题。

【问题讨论】:

    标签: html css


    【解决方案1】:

    在第 52 行附近的 style.css 中删除此 css

    .table-4 tr:hover td {
        background: none repeat scroll 0 0 #D0DAFD;
        color: #000099;
    }
    

    你用过:hover

    :hover => 最初由微软发明,a:hover 伪类一炮而红。它允许您定义鼠标悬停的元素的样式。


    注意:在触摸屏上:悬停是有问题或不可能的

    好读

    1. MDN : :hover

    编辑 在您发表评论后

    一点jquery(javascript)试试就可以达到你想要的效果

    删除.table-2 and 3 and 4 tr:hover tdcss

    并添加小 jquery

    var color = '';
    $('td').hover(function(){
    
        $(this).css('background','none repeat scroll 0 0 #D0DAFD');
         $(this).css('color','#000099');
         $(this).parent().find('td:first').css('background','none repeat scroll 0 0 #D0DAFD');
         $(this).parent().find('td:first').css('color','#000099');
    
    
    },function(){
        $(this).css('background',color);
         $(this).css('color','#666699');
         $(this).parent().find('td:first').css('background',color);
         $(this).parent().find('td:first').css('color','#666699');
    })
    

    【讨论】:

    • @user1896653 我不明白你只想先显示悬停和直径冒号???不是吗?
    • 对不起,你可能无法理解我的问题我已经解决了第一个问题:abidhasan.zxq.net/table/table-others-l.html 第二个问题是:当我将鼠标放在第二行的最后一列时,列以及第二行的所有列都将悬停。但是,我只想将鼠标悬停在第二行的最后一列,而不是第二行的其他列。
    • @user1896653 我已经尝试过jsfiddle.net/8nfAA ...我理解的是小提琴希望它对你有帮助
    • @user1896653 全屏结果jsfiddle.net/swamimayank/8nfAA/embedded/result ...
    • @user1896653 您可以点赞并接受有用的答案...要接受它们,您可以点击投票下方的勾号
    【解决方案2】:

    我在css和jquery中做了一些小技巧如下,

    CSS 部分:

    <style type="text/css">
    .new-child {
    background:none !important;
    }
    .born-child {
    background:#d0dafd !important;
    }
    </style>
    

    jQuery部分:

    <script type="text/javascript">
    $(document).ready(function() {
    
    $(".table-4 tr:eq(1)").hover(function(){
    $(".table-4 tr:eq(1)").find('td[rowspan]').addClass("new-child");
    });
    
    $(".table-4 tr:eq(1) td[rowspan]").hover(function(){ 
    $(".table-4 tr:eq(1) td").addClass("new-child");  
    $(".table-4 tr:eq(1) td[rowspan]").removeClass("new-child");
    $(".table-4 tr:eq(1) td[rowspan]").addClass("born-child");
    },
    function () {
    $(".table-4 tr:eq(1) td").removeClass("new-child");
    $(".table-4 tr:eq(1) td[rowspan]").removeClass("born-child");
    }
    );
    
    });
    </script>
    

    查看实际效果:http://jsfiddle.net/john_rock/emtpb/

    我认为这可以帮助您解决问题。

    【讨论】:

    • $(".table-4 tr:eq(1)").hover(function(){ $(".table-4 tr:eq(1)").find('td[rowspan]').addClass("new-child"); });+1
    • 非常感谢,约翰·彼得。我只想要你所做的。请帮我最后一次解决这个问题。我不是 jQuery 专家。我在一个页面上制作了多个表格。但是,它只适用于第一张桌子。其他表仍然有问题。可能是,应该添加一些新的 js 代码。 abidhasan.zxq.net/table-test/table-others.html 请告诉我其他表格如何像页面上的第一个表格一样工作。
    • 另外,请考虑我也制作了不同类型的表格。因此,不要提供任何妨碍其他表的默认代码(尽管不同表的 css 代码不同),如下所示:abidhasan.zxq.net/table-test/table-aspen.html
    • 嗨,伙计,我按照您的意愿使用了多表选项。,现在您可以使用具有此功能的“n”张表。,请参考以下位置:jsfiddle.net/john_rock/8jBrM
    • 看起来不错。非常感谢。但是,虽然不是什么大问题,但还是有问题。但是,如果你有一个简单的解决方案,请告诉我。使用新的 js 后,如果我在加载/刷新页面后首先将鼠标放在最后一列,第二行仍然会获得悬停颜色。 dropbox.com/s/pyo4pjpwgqx0d8z/4.png abidhasan.zxq.net/table-test/table-others-new.html 但是,在第二次将鼠标保持在最后一列之后,这并没有发生。如果我在加载/刷新页面后触摸该列而不触摸其他列,就会发生这种情况。
    【解决方案3】:

    简单的答案,每行都有说明。很抱歉回答简单,但行跨度会让你大吃一惊。

    【讨论】:

    • 我已经解决了第一个问题:abidhasan.zxq.net/table/table-others-l.html 第二个问题是:当我将鼠标放在第二行的最后一列时,该列以及第二行的所有列都将悬停。但是,我只想悬停第二行的最后一列,而不是第二行的其他列。而且 rowspan 确实阻碍了我解决我的第二个问题:(
    猜你喜欢
    • 2013-10-03
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多