【问题标题】:Shadow table row on hover on specific cell only仅悬停在特定单元格上的阴影表行
【发布时间】:2020-12-10 19:44:26
【问题描述】:

在悬停时遮蔽行通常很容易:

tr:hover {
  background-color: $light-grey;
}

但我想仅当它是悬停的最后一个单元格时才隐藏整行。对于任何其他单元格,我不希望它被遮蔽。让我们假设:

<tr>
  <td></td>
  <td></td>
  <td class="w"></td>
<tr>

我希望 tr 仅在 w 列(一行中的第一个单元格)悬停时才被遮蔽(背景颜色更改)。可以用js来完成:

$(".w").on("hover",(e) => {
   $(e.target).parent().addClass("highlight");
});


.highlight {
    background-color: $light-grey;
}

但这只能通过 scss 来实现吗?

【问题讨论】:

标签: css


【解决方案1】:

您可以仅使用 CSS 来获得效果,方法是向一行中的最后一个 td 添加一个伪元素(或通过问题中的 w 类)并使其在悬停时具有浅灰色背景。

tr {
  position: relative;
  font-size: 5em;
  display: block;
}

td.w:hover:before {
  position: absolute;
  left: 0;
  top: 0;
  content: '';
  background-color: lightgray;
  width: 100%;
  height: 100%;
  z-index: -1;
}
<table>
<tr>
  <td>A</td>
  <td>B</td>
  <td class="w">C</td>
<tr>
<tr>
  <td>A</td>
  <td>B</td>
  <td class="w">C</td>
<tr>
<tr>
  <td>A</td>
  <td>B</td>
  <td class="w">C</td>
<tr>
</table>

【讨论】:

    猜你喜欢
    • 2012-12-23
    • 2020-03-29
    • 2014-10-21
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 2021-07-21
    相关资源
    最近更新 更多