【问题标题】:Change color of a CSS when mouse hover an TD鼠标悬停 TD 时更改 CSS 的颜色
【发布时间】:2016-10-25 04:38:03
【问题描述】:

我正在开发一个带有大表(18 行 x 11 列)的网站。为了方便查看该表格的人,我将其悬停在 TR 的不同颜色上:

.responsive tr:hover {
    background-color: red;
}

但我想对专栏做同样的事情。但如果我使用.responsive td:hover {background-color: blue;},它只会悬停单个 TD,而不是整个列。至少,每个 TD 都有 col1col2 等类。

如何在悬停 TD 时更改 CSS 属性。如果可能的话,我可以在悬停col1 TD 时从col1 类更改background-color

有什么想法吗?

【问题讨论】:

    标签: javascript css html-table


    【解决方案1】:

    HTML 或 CSS 中没有列的概念。

    您必须使用 javascript 来执行此操作。

    这是一个使用 jQuery 的解决方案:

    var clean = function(){
       $('td').removeClass('colHover');
    }
    $('td').hover(
        function() {
           clean();
           $('td:nth-child('+($(this).index()+1)+')').addClass('colHover');
        }, clean
    );
    

    Demonstration


    现在,主要是为了好玩,如果你想处理 colspan,你可以这样做:

    var clean = function(){
       $('td').removeClass('colHover');
    }
    $('td').hover(
        function() {
           clean();
           var col = 0;
          $(this).prevAll().each(function(){col += parseInt($(this).attr('colspan')||'1')});
          $('tr').each(function(){
            var c = 0, done = false;
            $('td',this).each(function(){
              if (c>col && !done) {
                $(this).prev().addClass('colHover');
                done = true;
              }
              c += parseInt($(this).attr('colspan')||'1');
            });
            if (!done) $(this).find('td:last-child').addClass('colHover');
          });
        }, clean
    );
    

    Demonstration

    【讨论】:

    • 请注意,支持colspan 可能有点困难,因此此解决方案不会尝试
    • @JanDvorak 支持 colspan 的主要问题是确定目标是什么。
    • 我建议:突出显示与悬停的单元格重叠的任何列重叠的所有单元格。
    • 这是一个好方法,但我会改为为每个“列”定义一个类并更改 css 类,而不是要求 JQuery 使用 .css 方法遍历选择 - 例如 [$( '.classname').css('font-size','12px');],例如。
    • @OnoSendai 我建议第三种方法:使用类.col1, .col2... 附加.colHover 类。然后,一旦计算出来,colspan 就很容易定位
    猜你喜欢
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多