You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome中带backdrop-filter:blur的元素覆盖HTML5视频时视频变暗求助

解决Chrome中backdrop-filter: blur导致下方HTML5视频变暗的问题

问题描述

在全屏HTML5视频上方添加带有毛玻璃效果的UI栏,使用backdrop-filter: blur()实现后,启用该效果时下方视频会略微变暗。仅Chrome浏览器存在此问题,Safari表现正常;图片、纯色背景场景下无此问题,MP4、WebM格式视频均会出现该情况。

示例代码

HTML

<video muted>
  <source src="视频地址" type="video/mp4">
</video>
<div>
  <a href="#" id="button">toggle opacity of backdrop-filter:blur(15px) block</a>
</div>

CSS

video {
  width:100vw;
}

div {
  position: absolute;
  top:200px;
  right:300px;
  border:1px solid red;
}

#button {
  color: #fff; 
  backdrop-filter: blur(15px);
  padding:20px;
  display:block;
  &.hide {
    opacity:0;
  }
}

解决方案

方法1:给视频开启硬件加速

给视频元素添加transform: translateZ(0),强制浏览器使用硬件加速渲染视频,解决层叠渲染导致的颜色异常:

video {
  width: 100vw;
  transform: translateZ(0);
}

方法2:使用will-change触发硬件加速

另一种触发硬件加速的方式是给视频元素添加will-change: transform,告知浏览器该元素会有变换操作,提前启用硬件加速:

video {
  width: 100vw;
  will-change: transform;
}

方法3:给毛玻璃元素添加透明背景色

部分场景下,给带有backdrop-filter的元素添加极低透明度的背景色,也能修复渲染异常:

#button {
  color: #fff; 
  backdrop-filter: blur(15px);
  background-color: rgba(255, 255, 255, 0.01); /* 添加极低透明度背景 */
  padding:20px;
  display:block;
  &.hide {
    opacity:0;
  }
}

原因说明

Chrome中backdrop-filter的渲染机制与视频的默认渲染层存在冲突,导致视频颜色被意外过滤变暗。通过开启视频的硬件加速,让视频和毛玻璃元素处于同一渲染层级,即可避免该问题。

内容的提问来源于stack exchange,提问作者Colin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:43:25