其实这个问题可以完全不需要使用 js 的,css3 便可胜任。于是我阐述一下基本原理:1、模糊特效使用 filter:blur;2、阴影效果使用 box-shadow;3、镂空效果最简单的方法就是使用 mask-image;4、透明层效果使用 background-color: rgba() 或 opacity;5、防止模糊外漏使用 overflow: hidden。

基本的层逻辑顺序是:

……

…………模糊层必须和内容并列(因为层内元素都会被模糊)

………模糊层>

…………此处为最顶层内容

………透明层>

……遮罩层>

…阴影层>

背景层>

于是我写了一个比较简单的例子(如下图所示):

// 知乎传图失败了N次,好纠结啊=_=||| 另外请无视背景图片的人物!

效果就是上面这样的,遮罩我要讲一下,这里用的png图片,如下图所示:

这里遮罩图片是有讲究的,如果在PS中查看,白色部分是透明区域,黑色部分就是实色区域。也就是透明的部分即为挖空区域,支持渐变/虚化/外发光等的半透明使用(其实原理就是将RGBA的α透明通道提取叠加在了页面上),利用这个原理还可以做毛玻璃效果:

上图遮罩后得到如下效果:

还有人会问,图片体积太大,而且浏览器放大页面了,虚化效果不就模糊了吗?这个不是问题,因为可以支持svg,只不过svg必须是黑白的,不能透明色,虚化过渡可以使用黑白过渡,半透明就是灰色的,具体使用方法我就不再展开了,大家自行谷歌吧。

补充说明与延伸:

【1】楼主如果想实现窗体非固定位置(图片位置不确定)要怎么办?

其实大家可以试试 css3 的 calc() 参数功能,类似于函数计算。当有数值填写的属性,例如width、height、top、left… 就可以用到它,很强大哦。格式是 left: calc( ((100% - 50px)/2)*5 ) 这样的,100%是父项的宽度,支持加减乘除,但是加减符号前后务必要加空格。

【2】镂空文字的阴影能不能也一起做出来呢?

答案是:当然可以了!我只不过是偷懒了而已,其实完全能做出来的,方法也有很多。我举个傻瓜一些的方法,你可以在那个镂空的位置上覆叠文字,文字颜色全透明,外加文字内阴影(text-shadow)。

【3】为什么楼主图片的模糊区域变亮了?如何实现的?

这个太简单了,还是filter特效,这里我只是给大家演示了blur模糊的用法,其实楼主原图的效果还用了提高亮度/饱和度/对比度之类的特效,大家自行百度喽,filter效果非常丰富的。下面是我追加了 filter: blur(5px) saturate(1.3) brightness(1.5); 的效果图:

简易代码:

#bbox {

width: 635px;

height: 674px;

margin: 5% auto;

background: url(bg.png) no-repeat;

overflow: hidden;

}

#shadow {

width: 451px;

height: 450px;

margin: 112px 92px;

border-radius: 20px;

box-shadow: 0px 0px 12px rgba(0,0,0,0.50);

overflow: hidden;

}

#box {

width: 451px;

height: 450px;

position: relative;

mask-image: url(xxx.png);

-webkit-mask-image: url(xxx.png);

}

#bar {

width: 451px;

height: 450px;

float: left;

top: 0px;

position: absolute;

background-color: rgba(255,255,255,0.30);

overflow: hidden;

}

#momo {

width: 451px;

height: 450px;

float: left;

filter: blur(5px);

filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=5,MakeShadow=false);

-webkit-filter: blur(5px); -moz-filter: blur(5px);

background: url(bg.png) no-repeat center center;

top: 0px;

overflow: hidden;

}

css背景图不失真_CSS如何实现这种背景效果?相关推荐

  1. css背景图不失真_CSS背景background图片

    1.后盾图片语法 bac千克round-image:url() 引入后援图片 background-repeat:no-repeat 设置后盾图片可否重复平铺 background-position: ...

  2. css背景图不失真_CSS实现页面背景图片模糊内容不模糊的方法

    CSS实现页面背景图片模糊内容不模糊的方法,如果对你有帮助就看看吧,挺实用的一个CSS背景模糊效果,适合做一些非常唯美的网页,给人一种很模糊却又带着一丝清晰的感觉. 代码: Document .ban ...

  3. css背景图不失真_html css 中非常经典的背景图片充满屏幕且不变形问题

    要求: 图片尺寸任意,图片宽高比任意(意思就是随便拿张图片都得ok),渲染后不可变形 图片中心与可视区中心重合 图片充满整个屏幕 自适应屏幕宽高变化 给图片上一层蒙版,便于在其上渲染文字 思路分析: ...

  4. css背景图根据屏幕大小自动缩放

    css背景图根据屏幕大小自动缩放 代码: 1 2 3 4 5 6 7 8 9 10 <style> html,body{margin:0px;padding:0px;} #backgrou ...

  5. php背景图片随页面大小改变,css背景图根据屏幕大小自动缩放

    css背景图根据屏幕大小自动缩放 代码: html,body{margin:0px;padding:0px;} #background { position: fixed;top: 0;left: 0 ...

  6. css背景图background - 多背景定义

    css背景图background - 多背景定义 1. 方法一 .bg{height:600px;background: url(../../static/images/slider/zplc.png ...

  7. i css svg,如何设置 CSS 背景图中的 SVG 的颜色

    Coloring SVGs in CSS Background Images 如何设置 CSS 背景图中的 SVG 的颜色 I love using SVG in CSS background ima ...

  8. HTML CSS 背景图居中属性background-position

    HTML CSS背景图居中(无序列表) --背景重复:backgroung-repeat:--no-pepeat:不重复--repeat-x:水平水平方向平铺; --repeat-y:垂直方向平铺-- ...

  9. html图片撑开盒子,css背景图撑开盒子高度

    本文原地址 需求: 给定1980px*1080px背景图,在网页显示时,图片宽度等于浏览器宽度,高度根据原图比例显示对应高度,假设图片最小宽度设置为1024px,则最小高度为1024/(1980*10 ...

  10. CSS背景图和渐变色共存

    CSS背景图和渐变色共存 需求场景是在一个DOM元素上需要背景图和渐变色共存 实现 background: url(https://img.alicdn.com/imgextra/i4/1881744 ...

最新文章

  1. QuickTime 0day ***代码发布,可能允许执行任意代码
  2. Bootstrap3 栅格系统-媒体查询
  3. HTML框架,列表,表格
  4. RESTful架构风格
  5. java web服务器tomcat介绍【转载】
  6. 别在被骗了!!!!!!
  7. PHP+七牛云存储上传图片代码片段
  8. mvn 使用中的错误
  9. db h2 数据类型_H2数据库函数及数据类型概述-阿里云开发者社区
  10. java通过证书获取CN_java – 从证书DN解析CN [重复]
  11. 安装ros-melodic遇到的各种问题及解决方法
  12. [转载]JUnit3 与 JUnit4 的区别
  13. 2007年高考北京满分作文:沉默的父爱
  14. 分期花呗 账户交易通知:尾号6932客户,您的申请已通过,账户余额38139元,无手续费,点t.cn/Aijsx9vq取款,回T退订。...
  15. 12个最好的开源报表工具
  16. 硬盘/分区克隆:怎么无损迁移老硬盘数据到新硬盘?
  17. 严格对角化基态Lanczos算法C++ Eigen实现
  18. 思岚科技—SLAMTEC对于激光雷达的执着与坚持
  19. YOLOv5训练自己的数据集(超详细)
  20. w10用计算机卸载,Win10专业版电脑里的软件如何卸载干净?

热门文章

  1. 短视频制作团队的工作流程分为5个步骤
  2. 身体神经系统分布图高清,身体神经系统分布图片
  3. 每日一记—获取Bing每日一图实现Android欢迎页(一)
  4. 如何把一张图片设置成一个应用程序的图标?
  5. C语言枚举类型和联合体
  6. 员工绩效考核指标设计主要原则(zt)
  7. Little_Women6.txt
  8. error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“: h
  9. python浪漫代码表白npy_【交大表白墙】表白dxy小姐姐,十里春风不如你,三里桃花不及卿,要每天开心哦!...
  10. 学习总结以及对接下来的规划