发布时间:2023-04-22 文章分类:WEB开发, 电脑百科 投稿人:李佳 字号: 默认 | | 超大 打印

💭💭

✨: CSS实现背景图片模糊——毛玻璃效果 | 浅谈CSS属性 filter、backdrop-filter

💟:东非不开森的主页

💜: 因为很多东西来不及去做去看可是时间很快总是赶不上,所以要去成长呀💜💜

🌸: 如有错误或不足之处,希望可以指正,非常感谢😉

应用场景:在音乐类的项目,会有让图片当背景模糊的效果
如下图:
CSS实现背景图片模糊——毛玻璃效果 | 浅谈CSS属性 filter、backdrop-filter

毛玻璃效果

    • 一、使用filter: blur()
    • 二、backdrop-filter: blur()
    • 补充:filter、backdrop✨✨

一、使用filter: blur()

⭐⭐⭐

css

.bg {
        position: fixed;
        width: 450px;
        height: 253px;
        overflow: hidden;
      }
      .bg-image {
        width: 100%;
        filter: blur(5px);
      }
      .bg-image::after {
        content: "";
        display: block;
        background: rgba(0, 0, 0, 0.5);
        z-index: 1;
      }

html :

<div class="bg">
      <img src="./images/动漫.jpg" alt="" class="bg-image" />
    </div>


预览效果:

CSS实现背景图片模糊——毛玻璃效果 | 浅谈CSS属性 filter、backdrop-filter
虽然四周是清晰了,但是还是会看见白色的边边。

二、backdrop-filter: blur()

⭐⭐⭐⭐⭐

原本图片,想要毛玻璃效果,给它加滤镜(注意,并不是图片模糊化,是给它加滤镜)
CSS实现背景图片模糊——毛玻璃效果 | 浅谈CSS属性 filter、backdrop-filter


代码:
css

.bg-image,
      .inner {
        position: fixed;
        top: 0;
        left: 0;
        width: 450px;
        height: 253px;
        z-index: -1;
      }
      .inner {
        background: rgba(0, 0, 0, 0.5);
        backdrop-filter: blur(5px);
      }

html

<div class="bg-image">
      <img src="./images/动漫.jpg" alt="" class="img" width="100%" />
      <div class="inner"></div>
</div>


预览效果:
CSS实现背景图片模糊——毛玻璃效果 | 浅谈CSS属性 filter、backdrop-filter
这样就是我们要的效果了,nice~

补充:filter、backdrop✨✨

✨✨

推荐去mdn官网看哦: MDN

  1. filter

mdn文档这样介绍:
CSS属性 filter 将模糊或颜色偏移等图形效果应用于元素。滤镜通常用于调整图像、背景和边框的渲染。


2. backdrop-filter

mdn文档这样介绍:
backdrop-filter CSS 属性可以让你为一个元素后面区域添加图形效果(如模糊或颜色偏移)。因为它适用于元素背后的所有元素,为了看到效果,必须使元素或其背景至少部分透明。

也就是说给图片加了一层滤镜(我是这样理解的)
常见属性:


示例:
括号里面为他们所用的值和单位

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%);

(~ ̄▽ ̄)~