让背景出现毛玻璃的效果

一 .最近做一个项目,UI的一个需求是:

1.背景是半透明的
2.背景有毛玻璃的模糊效果
3.上面的字体清晰可见
效果如下:
这里写图片描述

二 . 我说这个简单,不就是背景用blur处理一下嘛,简单。

先是背景透明,字体清晰可见

div{
  background:rgba(51, 51, 51, .6);
}

再来个模糊处理

div{
  background:rgba(51, 51, 51, .6);
  -webkit-filter: blur(10px);
   -moz-filter: blur(10px);
    -ms-filter: blur(10px);    
        filter: blur(10px);
}

还做了兼容处理,美滋滋。
打开浏览器刷新:
这里写图片描述

我擦,这都是什么鬼。不行,要分析一下。

原来div里面的字和div是在一个盒子里面,设置这个盒子为模糊,那么里面的字一起都会被设为模糊。所以,我们可以通过以下方法:

要设置模糊背景的地方通过伪元素设置背景颜色,区域relative定位,伪元素absolute定位,这样让伪元素的大小完全等于本来区域的大小 然后用blur滤镜进行模糊处理,再设置伪元素z-index为 -1,置于最底层,就OK啦。

div{
   position: relative;
  background:rgba(51, 51, 51, .6);
  -webkit-filter: blur(10px);
   -moz-filter: blur(10px);
    -ms-filter: blur(10px);    
        filter: blur(10px);
}
div::before {
    position: absolute;
    z-index: -1;
    background:rgba(51, 51, 51, .6);
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    content: '';
    filter: blur(10px);
 }

这样 就得到了第一张图的效果。

感谢的思路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值