css3实现背景模糊的三种方式

css3实现背景模糊使用伪元素,因为伪元素的模糊度不会被父元素的子代继承。

Posted in HTML / CSS onMarch 09, 2021

一、普通背景模糊

<Style>
        html,
        body {
            width: 100%;
            height: 100%;
        }

        * {
            margin: 0;
            padding: 0;
        }

        /*背景模糊*/
        .bg {
            width: 100%;
            height: 100%;
            position: relative;
            background: url("./bg.jpg") no-repeat fixed;
            background-size: cover;
            box-sizing: border-box;
            filter: blur(2px);
            z-index: 1;
        }

        .content {
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            width: 200px;
            height: 200px;
            text-align: center;
            z-index: 2;
        }
    </Style>
</head>

<body>
    <div class="bg">
        <div class="content">背景模糊</div>
    </div>
</body>

效果如下所示:

css3实现背景模糊的三种方式

 这样写会使整个div的后代模糊并且还会出现白边,导致页面非常不美观,要想解决这个问题,我们可以使用伪元素,因为伪元素的模糊度不会被父元素的子代继承。

<Style>
        html,
        body {
            width: 100%;
            height: 100%;
        }

        * {
            margin: 0;
            padding: 0;
        }

        /*背景模糊*/
        .bg {
            width: 100%;
            height: 100%;
            position: relative;
            background: url("./bg.jpg") no-repeat fixed;
            background-size: cover;
            box-sizing: border-box;
            z-index: 1;
        }

        .bg:after {
            content: "";
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            top: 0;
            /* 从父元素继承 background 属性的设置 */
            background: inherit;
            filter: blur(2px);
            z-index: 2;
        }


        .content {
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            width: 200px;
            height: 200px;
            text-align: center;
            z-index: 3;
        }
    </Style>
</head>

<body>
    <div class="bg">
        <div class="content">背景模糊</div>
    </div>
</body>

效果如下所示:

css3实现背景模糊的三种方式

 

二、背景局部模糊

上一个效果会了之后,局部模糊效果就比较简单了。

<Style>
        html,
        body {
            width: 100%;
            height: 100%;
        }

        * {
            margin: 0;
            padding: 0;
        }

        /*背景模糊*/
        .bg {
            width: 100%;
            height: 100%;
            position: relative;
            background: url("./bg.jpg") no-repeat fixed;
            background-size: cover;
            box-sizing: border-box;
            z-index: 1;
        }

        .content {
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            width: 200px;
            height: 200px;
            background: inherit;
            z-index: 2;
        }

        .content:after {
            content: "";
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            top: 0;
            background: inherit;
            filter: blur(15px);
            /*为了模糊更明显,调高模糊度*/
            z-index: 3;
        }

        .content>div {
            width: 100%;
            height: 100%;
            text-align: center;
            line-height: 200px;
            position: absolute;
            left: 0;
            top: 0;
            z-index: 4;
        }
    </Style>
</head>

<body>
    <div class="bg">
        <div class="content">
            <div>背景局部模糊</div>
        </div>
    </div>
</body>

效果如下图所示:

css3实现背景模糊的三种方式

 三、背景局部清晰

<Style>
        html,
        body {
            width: 100%;
            height: 100%;
        }

        * {
            margin: 0;
            padding: 0;
        }

        /*背景模糊*/
        .bg {
            width: 100%;
            height: 100%;
            position: relative;
            background: url("./bg.jpg") no-repeat fixed;
            background-size: cover;
            box-sizing: border-box;
            z-index: 1;
        }

        .bg:after {
            content: "";
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            top: 0;
            background: inherit;
            filter: blur(5px);
            z-index: 2;
        }

        .content {
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            width: 200px;
            line-height: 200px;
            text-align: center;
            background: inherit;
            z-index: 3;
            box-shadow: 0 0 10px 6px rgba(0, 0, 0, .5);
        }
    </Style>
</head>

<body>
    <div class="bg">
        <div class="content">
            <div>背景局部清晰</div>
        </div>
    </div>
</body>

效果如下图所示:

css3实现背景模糊的三种方式

HTML / CSS 相关文章推荐
CSS3教程(1):什么是CSS3
Apr 02 HTML / CSS
利用CSS3的transform做的动态时钟效果
Sep 21 HTML / CSS
css3实现针线缝合效果(图解步骤)
Feb 04 HTML / CSS
初探CSS3中的calc()功能
Jul 14 HTML / CSS
基于Jquery和Css3代码制作可以缩放的搜索框
Nov 19 HTML / CSS
详解如何在css中引入自定义字体(font-face)
May 17 HTML / CSS
html5-canvas中使用clip抠出一个区域的示例代码
May 25 HTML / CSS
html5中如何将图片的绝对路径转换成文件对象
Jan 11 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
Aug 09 HTML / CSS
浅谈html5之sse服务器发送事件EventSource介绍
Aug 28 HTML / CSS
HTML5自定义元素播放焦点图动画的实现
Sep 25 HTML / CSS
CSS实现九宫格布局(自适应)的示例代码
Feb 12 HTML / CSS
HTML5如何适配 iPhone IOS 底部黑条
CSS3画一个阴阳八卦图
CSS中一些@规则的用法小结
Mar 09 #HTML / CSS
a标签的css样式四个状态
Mar 09 #HTML / CSS
详解CSS样式中的 !important * _ 符号
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
CSS心形加载的动画源码的实现
You might like
PHP新手上路(十一)
2006/10/09 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
javascript运动详解
2015/07/06 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
前端性能优化建议
2020/09/17 Javascript
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
Python 检查数组元素是否存在类似PHP isset()方法
2014/10/14 Python
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
Python3中的json模块使用详解
2018/05/05 Python
python list转矩阵的实例讲解
2018/08/04 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
Python如何将装饰器定义为类
2020/07/30 Python
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
经济信息管理专业大学生求职信
2013/09/27 职场文书
高一英语教学反思
2014/01/22 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js