3

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

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

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

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

任何的想法?

4

1 回答 1

4

HTML 或 CSS 中没有列的概念。

您必须使用 javascript 来做到这一点。

这是使用 jQuery 的解决方案:

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

示范


现在,主要是为了好玩,如果你想处理 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
);

示范

于 2013-01-07T18:26:29.120 回答