CSS3 毛玻璃效果


Posted in HTML / CSS onAugust 14, 2019

毛玻璃效果做的好能使页面显得非常生动立体。直接上图

CSS3 毛玻璃效果

body {
    min-height: 100vh;
    box-sizing: border-box;
    margin: 0;
    padding-top: calc(50vh - 6em);
    font: 150%/1.6 serif;
    background: url("iphone.jpg") fixed 0 center;
    background-size: cover;
}
main {
    margin: 0 auto;
    padding: 1em;
    max-width: 30em;
    border-radius: .3em;
    box-shadow: 0 0 0 1px hsla(0,0%,100%,.3) inset,
                0 .5em 1em rgba(0, 0, 0, 0.6);
    text-shadow: 0 1px 1px hsla(0,0%,100%,.3);
    background: hsla(0,0%,100%,.3);
}

<main>……</main>

去掉那些式样方面的代码,上面实现毛玻璃效果的核心代码如下:

body {
    …
    background: url("iphone.jpg") fixed 0 center;
    background-size: cover;
}
main {
    …
    background: hsla(0,0%,100%,.3);
}

当然这个效果离我们的期望还有点距离,因为单纯的30%的透明度会让文字变的难以阅读。对页面来说背景图只是起美化作用,文字才是最核心的。你可以增大透明度的百分比,但这样页面会显得很死板。为了让文字便于阅读,又保持页面的生动活泼,可以对上面的mian标签的背景做模糊处理。

你可能尝试blur滤镜,但可惜的是效果不对:

CSS3 毛玻璃效果

main {
    …
    -webkit-filter: blur(3px);
    filter: blur(3px);
}

用blur滤镜会将文字也模糊掉,更看不清了,只能放弃。正确的做法是给mian标签增加伪元素::before,在伪元素上使用blur滤镜:(为了效果演示,加上了红色背景色)

CSS3 毛玻璃效果

main {
    position: relative;
    …
}
main::before {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    z-index: -1;
    -webkit-filter: blur(20px);
    filter: blur(20px);
    background: rgba(255,0,0,.5);
}

可以看出blur效果是出来了,但导致了两个问题。首先由于blur出现了外阴影,这个比较好解决,只要加上 overflow: hidden; 就行了。其次四周20px的模糊半径范围内模糊效果会逐渐消退。如果对此比较介意,想让四周的模糊效果和中间一样,可以将伪元素尺寸外扩20px,为了保险起见,可以稍微再外扩一点到30px:

CSS3 毛玻璃效果

main {
    …
    overflow: hidden;
}
main::before {
    …
    margin: -30px;
}

最后将伪元素的红色背景色替换成body的背景图即可,效果如下。你也可以点击 这里 ,右键查看完整的源代码。

CSS3 毛玻璃效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
Jun 11 HTML / CSS
用css3写出气球样式的示例代码
Sep 11 HTML / CSS
css3使用animation属性实现炫酷效果(推荐)
Feb 04 HTML / CSS
CSS3实现淘宝留白的方法
Jun 05 HTML / CSS
css3中flex布局宽度不生效的解决
Dec 09 HTML / CSS
html5 touch事件实现触屏页面上下滑动(一)
Mar 10 HTML / CSS
基于HTML5的WebSocket的实例代码
Aug 15 HTML / CSS
HTML5新增的标签和属性归纳总结
May 02 HTML / CSS
HTML5边玩边学(2)基础绘图实现方法
Sep 21 HTML / CSS
HTML5重塑Web世界它将如何改变互联网
Dec 17 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
Oct 23 HTML / CSS
HTML文本属性&amp;颜色控制属性的实现
Dec 17 HTML / CSS
详解css position 5种不同的值的用法
Jul 30 #HTML / CSS
CSS Houdini实现动态波浪纹效果
Jul 30 #HTML / CSS
使用css实现android系统的loading加载动画
Jul 25 #HTML / CSS
使用CSS3实现input多选框自定义样式的方法示例
Jul 19 #HTML / CSS
详解css3中 text-fill-color属性
Jul 08 #HTML / CSS
解决margin 外边距合并问题
Jul 03 #HTML / CSS
css3实现蒙版弹幕功能
Jun 18 #HTML / CSS
You might like
PHP DataGrid 实现代码
2009/08/12 PHP
PHP目录函数实现创建、读取目录教程实例
2011/01/13 PHP
鸡肋的PHP单例模式应用详解
2013/06/03 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
javascript hashtable实现代码
2009/10/13 Javascript
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
jQuery中:animated选择器用法实例
2014/12/29 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
linux 下实现python多版本安装实践
2014/11/18 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
python3中获取文件当前绝对路径的两种方法
2018/04/26 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
Python流程控制 while循环实现解析
2019/09/02 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
HTML5 解析规则分析
2009/08/14 HTML / CSS
html5 视频播放解决方案
2016/11/06 HTML / CSS
几个Shell Script面试题
2012/08/31 面试题
管理科学大学生求职信
2013/11/13 职场文书
高考学习决心书
2015/02/04 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
婚宴来宾致辞
2015/07/28 职场文书
《去年的树》教学反思
2016/02/18 职场文书