首页 > 建站教程 > CSS3+HTML5 >  css3 backdrop-filter让背后元素模糊或颜色偏移正文

css3 backdrop-filter让背后元素模糊或颜色偏移

css3提供了filter滤镜,这个属性直接作用于当前元素,而css3 backdrop-filter是让设置这个属性的当前元素背后的元素产生模糊或颜色偏移,相当于透过一个有特殊效果的玻璃看后面的东西,因为它适用于元素背后的所有元素,为了看到效果,必须使元素或其背景至少部分透明:

所有值:

/* 关键词值 */
backdrop-filter: none;
/* 指向 SVG 滤镜的 URL */
backdrop-filter: url(commonfilters.svg#filter);
/* <filter-function> 滤镜函数值 */
backdrop-filter: blur(2px);
backdrop-filter: brightness(60%);
backdrop-filter: contrast(40%);
backdrop-filter: drop-shadow(4px 4px 10px blue);
backdrop-filter: grayscale(30%);
backdrop-filter: hue-rotate(120deg);
backdrop-filter: invert(70%);
backdrop-filter: opacity(20%);
backdrop-filter: sepia(90%);
backdrop-filter: saturate(80%);
/* 多重滤镜 */
backdrop-filter: url(filters.svg#filter) blur(4px) saturate(150%);
/* 全局值 */
backdrop-filter: inherit;
backdrop-filter: initial;
backdrop-filter: revert;
backdrop-filter: unset;


语法

none 没有应用于背景的滤镜。


<filter-function-list> 一个以空格分隔的滤镜函数(<filter-function>)或是要应用到背景上的 SVG 滤镜。


示例

CSS

.box {
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 5px;
  font-family: sans-serif;
  text-align: center;
  line-height: 1;
 -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  max-width: 50%;
  max-height: 50%;
  padding: 20px 40px;
}
html,
body {
  height: 100%;
  width: 100%;
}
body {
  background-image: url(https://picsum.photos/id/1080/6858/4574), linear-gradient(rgb(219, 166, 166), rgb(0, 0, 172));
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.container {
  align-items: center;
  display: flex;
  justify-content: center;
  height: 100%;
  width: 100%;
}


HTML

<div class="container">
  <div class="box">
    <p>backdrop-filter: blur(10px)</p>
  </div>
</div>


效果:

11.png