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

💭💭

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

💟:东非不开森的主页

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

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

应用场景:在音乐类的项目,会有让图片当背景模糊的效果
如下图:
在这里插入图片描述

一、使用filter: blur()

⭐⭐⭐

  • 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>


预览效果:

在这里插入图片描述
虽然四周是清晰了,但是还是会看见白色的边边。

二、backdrop-filter: blur()

⭐⭐⭐⭐⭐

原本图片,想要毛玻璃效果,给它加滤镜(注意,并不是图片模糊化,是给它加滤镜)
在这里插入图片描述

  • 背景固定,背景的宽高要和图片一致
  • 在添加另外一个元素(即为滤镜),给它设透明度和模糊值
  • 给背景和滤镜设置z-index:-1, 使用负值降低优先级,防止添加在模糊图片上的文字图片模糊


代码:
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>


预览效果:
在这里插入图片描述
这样就是我们要的效果了,nice~

补充:filter、backdrop✨✨

✨✨

推荐去mdn官网看哦: MDN

  1. filter

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

  • blur
    filter: blur() 单位是px
    越大越模糊

  • opacity
    filter: opacity()
    透明度,设置元素的透明度在0~1之间
    0:完全透明
    1:无效

  • grayscale
    filter: grayscale()
    使图片变灰

    blablabla~~
    和我我下面总结的属性都是一致的(太累了,不想打了,用到啥就去搜吧嘿嘿


2. backdrop-filter

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

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

  • backdrop-filter: blur(); 高斯模糊滤镜
  • backdrop-filter: brightness(); 图片明亮度滤镜
  • backdrop-filter: contrast(); 对比度滤镜
  • backdrop-filter: drop-shadow();阴影滤镜
  • backdrop-filter: grayscale();灰度滤镜
  • backdrop-filter: hue-rotate();色相滤镜
  • backdrop-filter: invert();反转滤镜
  • backdrop-filter: opacity();透明度滤镜
  • backdrop-filter: sepia();深褐色滤镜
  • backdrop-filter: saturate();饱和度滤镜


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

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

(~ ̄▽ ̄)~

  • 28
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
实现 CSS 渐变半透背景毛玻璃效果,可以结合使用 background-image、opacity 和 backdrop-filter 属性。具体实现步骤如下: 1. 使用 background-image 属性设置渐变背景,可以使用 linear-gradient 或 radial-gradient 函数实现。 2. 使用 opacity 属性设置元素的不透明度,使元素呈现半透明效果。 3. 使用 backdrop-filter 属性对元素的背景进行模糊处理,实现毛玻璃效果。 下面是一个简单的代码示例,实现 CSS 渐变半透背景毛玻璃效果: ```css .background { background-image: linear-gradient(to bottom right, rgba(255, 255, 255, 0.8), rgba(0, 0, 0, 0.8)); opacity: 0.8; backdrop-filter: blur(10px); /* 注意需要添加以下两个属性才能实现兼容性 */ -webkit-backdrop-filter: blur(10px); -moz-backdrop-filter: blur(10px); } ``` 在上述代码中,使用了 linear-gradient 函数设置了从右下角到左上角的渐变背景,颜色分别为白色和黑色,透明度为 0.8。同时,使用了 opacity 属性设置了元素的不透明度为 0.8,使元素呈现半透明效果。最后,使用了 backdrop-filter 属性对元素的背景进行了模糊处理,模糊半径为 10px。为了兼容性,在属性值前面添加了浏览器前缀。 需要注意的是,渐变背景的具体设置需要根据具体的需求进行调整。同时,opacity 属性和 backdrop-filter 属性的支持情况可能会随着浏览器版本的更新而发生变化,需要进行版本兼容性的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东非不开森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值