【发布时间】:2020-10-23 19:02:38
【问题描述】:
我们以this page 为例。除了页面上的一个选定元素(应该获得焦点)之外,如何模糊页面上的每个元素(标题导航下方)?
如果您对整个内容区域进行模糊处理,则焦点元素也会被模糊处理(您不能对模糊父项的子项进行模糊处理)。而且,如果您选择(并检查)每个元素是否应该模糊,这不是最好的方法。此外,该元素应保留在内容区域内,不得以任何方式进行 HTML 转换。
使用绝对定位的叠加层将其变暗并赋予焦点元素relative 位置和更高的z-index 是很容易的,但不幸的是,模糊该黑暗叠加层并不会模糊其后面的内容:
【问题讨论】:
-
大多数时候人们会添加元素来包围元素并对其应用过滤器,或者添加一个并更改 z-index。
-
其他选项是遍历树并且不应用模糊来添加父级,只需将其应用到其他分支和兄弟姐妹。
-
使用背景过滤器用巨大的遮罩 div 模糊所有内容,使用 z-index 将您想要保存的任何内容提升到遮罩上方。
-
.highlight::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; backdrop-filter: blur(2px); -
有些人只是喜欢给问题
-1没有明显的原因,我猜?