Css3实现背景毛玻璃效果

时间: 2020-03-15阅读: 526标签: 效果

毛玻璃效果

ios里毛玻璃效果的使用非常多,本文介绍一个实现div毛玻璃背景的方法


css3 Filter

css3的Filter主要用在图像的特效处理上,默认值为none,还有以下备选项:

  1.grayscale灰度
  2.sepia褐色
  3.saturate饱和度
  4.hue-rotate色相旋转
  5.invert反色
  6.opacity透明度
  7.brightness亮度
  8.contrast对比度
  9.blur模糊
  10.drop-shadow阴影
每一种效果大家可以自己试试,考虑一下可以用在哪些方面,这里仅仅用到了其中的blur,帮助实现高斯模糊的效果。兼容性我试了一下最新的火狐和Chrome效果都是可以的,IE不用说了…


filter:blur()

参数默认是0,单位px,不接受%,参数值的大小表示屏幕上以多少像素融在一起, 所以值越大越模糊。


:before()

:before是css中的一种伪元素,可用于在某个元素之前插入某些内容。
用它来添加模糊背景,具体用法可以看我另外一篇?:before和:after


rgba()

毛玻璃背景上文字内容显示效果并不理想,无论字体颜色深或浅,看着总是怪怪的…因此还需要加上一层带色的半透明背景,一般是黑色,或白色。


示例:


整体通过三层重叠实现:

最下面是模糊层.blur_box:before,设置z-index: -2。
中间是rgba层.rgba,设置z-index: -1。
最上面是内容层.blur_box,设置z-index: 0。

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>毛玻璃效果</title>
</head>
<style>
*{
  margin: 0;
  padding: 0;
}
.bg{
  background:url(1.jpg) no-repeat center center fixed;/* 与下面的blur_box:before中的background设置一样 */
  width:100%;
  height:100%;
}
.blur_box{
  z-index: 0;/* 为不影响内容显示必须为最高层 */
  position: relative;
  overflow: hidden;
}
.blur_box:before{
  content: "";/* 必须包括 */
  position: absolute;/* 固定模糊层位置 */
  width:300%;
  height:300%;
  left: -100%;/* 回调模糊层位置 */
  top: -100%;/* 回调模糊层位置 */
  background:url(1.jpg) no-repeat center center fixed;/* 与上面的bg中的background设置一样 */
  filter: blur(20px);/* 值越大越模糊 */
  z-index: -2;/* 模糊层在最下面 */
}
.rgba{
  background-color: rgba(0, 0, 0, 0.2);/* 为文字更好显示,将背景颜色加深 */
  position: absolute;/* 固定半透明色层位置 */
  width:100%;
  height:100%;
  z-index: -1;/* 中间是rgba半透明色层 */
}
.content_text{
  text-align: center;
  color: rgba(255, 255, 255, 0.8);
  padding: 50px 30px;
  line-height: 28px;
}
article{
  width:40%;
  height:300px;
  margin:120px auto;
}
</style>
<body
  <div class="bg">
    <article class="blur_box">
      <div class="rgba"></div><!-- 写在这其实和blur_box:before效果相同,但已经设置过blur_box:before了 -->
      <div class="content_text">
        <h1>haha</h1>
        <p>texttexttexttexttexttexttexttexttext</p>
        <p>texttexttexttexttexttexttexttexttext</p>
        <p>texttexttexttexttexttexttexttexttext</p>
        <p>texttexttexttexttexttexttexttexttext</p>
        <p>texttexttexttexttexttexttexttexttext</p>
        <p>texttexttexttexttexttexttexttexttext</p>
      </div>
    </article>
  </div>
</body>
</html>

注释已经写的很详细了,但有一点还是得单独说一下。因为blur()产生的模糊效果当值越大时,就会有越宽的边缘渐变过渡,为了消除(实际上只是让它看不见),我将模糊层的宽度和高度都变大,再通过top和left负值调整位置。

.blur_box:before{
  content: "";
  position: absolute;
  width:300%;/* 模糊层的宽度和高度都变大 */
  height:300%;
  left: -100%;/* 回调模糊层位置 */
  top: -100%;
  background:url(1.jpg) no-repeat center center fixed; 
  filter: blur(20px);
  z-index: -2;
}

其中.rgba也可改为白色半透明background-color: rgba(255,255,255,0.2);,完全取决于自己,然后相应改变内容的字色。blur()的参数也可以根据自己爱好试着改变出想要的效果。

站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/8225

原生JS快速实现拖放(drag and drop)效果

拖放是很常见的一种交互效果,很多时候我们都会借助于第三方的控件来实现,其实用原生js实现起来也非常的方便。接下来我们就用原生js和css快速实现这样的拖放效果:

js实现拖拽效果

定义全局变量用于接收鼠标坐标的变量,事件的执行函数,事件的执行函数自带参数e。自带参数e注意:div元素要设置定位才可以进行移动。

让网页变灰的实现_网站蒙灰CSS样式总汇

每次全国哀悼日,各大网站首页都变成了灰色,添加以下全局CSS样式,可以实现此效果:使用方法:这段代码可以变网页为黑白,将代码加到CSS最顶端就可以实现素装。

css按钮交互效果

是利用了:active和box-shadow两个特性来实现的。希望通过这个简单效果,能让更多的朋友喜欢上css。首先来说一下:active,就是当用户按住一个a标签的时候的意思,鼠标点击下去但没有松开的时候就这样样子啦。

background 实现四角选中框效果

background 上绑定的多项背景图实际为background-image 和 background-position;也就是图片和位置;linear-gradient 是一种特殊的image类型,之后禁止重复和background-size是设置每个点的宽高

vue 实现文字无缝滚动效果(从下往上滚动)

这种效果需求还是蛮多的,想起之前用JQuery实现的一个无缝滚动( 缅怀过去),是通过jq的animate方法实现的,动画结束之后就将第一个元素appendTo追加到最后面,实现循环滚动特效,不得不感叹技术更新换代真的很快。

Vue实现吸顶效果

因为项目需求,最近开始转到微信公众号开发,接触到了Vue框架,这个效果的实现虽说是基于Vue框架下实现的,但是同样也可以借鉴到其他地方,原理都是一样的。因为在css中我们可以设置一个元素的position: fixed;

jQuery 效果方法summary

定义和用法slideDown() 方法通过使用滑动效果,显示隐藏的被选元素。(被选元素的高度发生变化),该效果适用于通过 jQuery 隐藏的元素,或在 CSS 中声明 display:none 的元素

text-fill-color:仿苹果官网介绍效果 CSS设置文字渐变效果 文字背景图遮罩

发布iPhone XR的时候 各种心动 去官网看了一遍又一遍。闲着无聊发现 里面的介绍很用大篇幅的有背景文字来介绍。Like this:看着挺酷炫的还不错 就看了下实现方式。还挺简单的。

vue实现 toggle显示隐藏效果

jQuery中有个toggle()方法,可以切换元素的显示状态,在用vue时如果不引入jQuery如何实现这种效果?常见有三种场景:1.控制页面中一个dom元素2.控制页面中多个dom元素3.控制页面中的dom元素是从服务端返回,且有多个

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全运营推广