html - 如何从表格的悬停中排除悬停的 td?

标签 html css hover blur

我想在表格上应用名为“模糊”的过滤器(仅在CSS中悬停时),不包括当时悬停的td。否则,滤镜模糊将从页面加载中应用。 那么,如何仅使用 CSS 来从表格的悬停中排除 td 悬停呢?

table td {
    filter: blur(1px);
}   

td:hover {
    filter:blur(0px)
}

最佳答案

为了使表格仅在悬停时模糊,您必须使用选择器table:hover。现在,因为应用于元素的过滤器也应用于其子元素,并且因为您希望其中一个单元格(它是子元素)不具有该过滤器,所以您不能将其应用于整个表。相反,您需要将其应用到悬停表格内的每个单元格,就像您所做的那样,但添加了伪选择器:table:hover td

然后,要从悬停的单元格中删除过滤器,您自然会将过滤器应用于以下选择器:td:hover。这里的问题是,您已经使用前一个选择器 (table:hover td) 定位所有表格单元格,并且第一个选择器的特异性 (12) 比第二个选择器 (11) 更高。为了使第二个选择器获胜,它必须至少具有相同的特异性,并且放置在第一个选择器之后。

要将其特异性提高 1,您只需添加 table 并在其前面添加一个空格即可。这意味着它的目标是表格中悬停的单元格,这正是您想要的。

您最终会得到以下工作代码:

table:hover td { /* Specificity 12 */
  filter: blur(1px);
}

table td:hover { /* Also specificity 12, but placed after, so it wins */
  filter: blur(0px);
}
<table>
  <tr>
    <td>Cell</td>
    <td>Cell</td>
    <td>Cell</td>
  </tr>
</table>

这有帮助吗?

关于html - 如何从表格的悬停中排除悬停的 td?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56313121/

相关文章:

html - 在单词中单个字母的空间内添加背景颜色

javascript - Math.random/floor 带有函数和 onclick?

javascript - 在页面调整大小时记录隐藏元素的高度

html - 带定位的 CSS 悬停列表

css - 光标在 :hover 中不起作用

html - div 的 css 与 float 的 div 重叠?

javascript - 在可编辑的 div 中插入笑脸

css - 变换旋转在 Chrome 中无法正常工作

html - 如何使用 CSS 模拟 <br/>(br 标签)?

css - 下拉菜单 <li> 悬停改变背景图片