小胖墩er 小胖墩er
首页
  • 前端文章

    • JavaScript
    • Vue
    • ES6
    • Git
  • Vue
  • React
  • HTML
  • CSS
  • 工具类
  • GitHub技巧
  • 博客搭建
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档
📭主页 (opens new window)
GitHub (opens new window)

小胖墩er

Better later than never.
首页
  • 前端文章

    • JavaScript
    • Vue
    • ES6
    • Git
  • Vue
  • React
  • HTML
  • CSS
  • 工具类
  • GitHub技巧
  • 博客搭建
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档
📭主页 (opens new window)
GitHub (opens new window)
  • CSS动画效果

    • 毛玻璃效果
  • CSS&CSS预处理器

  • Element-UI

  • 页面布局
  • CSS动画效果
Alaso
2021-11-23

毛玻璃效果

毛玻璃

毛玻璃效果就是模糊效果,关键是让谁模糊?对元素运用filter: blur(30px)会让它的子元素也变模糊,所以不能让class="content"元素模糊;

这里文本所在的区域宽高是不定的,所以没办法用一个空div做模糊效果,然后“垫”在class="content"元素下面。于是,我们想到了伪类。

<div class="poem">
   <div class="content">
       <p>
            明月别枝惊鹊,<br>
            清风半夜鸣蝉。<br>
            稻花香里说丰年,<br>
            听取蛙声一片。<br>
            七八个星天外,<br>
            两三点雨山前。<br>
            旧时茅店社林边,<br>
            路转溪桥忽见。<br>
       </p>
   </div>
</div>
1
2
3
4
5
6
7
8
9
10
11
12
13
14

将伪类的位置设置成和内容元素一样,使用负的 z-index 来把一个伪类移动到class="content"元素下层。在使用负的 z-index 来把一个子元素移动到它的父元素下层时,请务必小心:如果父元素的上级元素有背景,则该子元素将出现在它们之后。 所以为class="content"元素设置z-index: 1;使伪元素出现在父父元素(class="poem"元素)之上。

总结

为伪元素设置和class="poem"元素一样的背景,为了让伪元素和class="poem"元素的背景重叠,用background-attachment: fixed 。此时对伪元素使用filter: blur(30px);就形成了毛玻璃效果。

.poem{
   width: 100vw;
   height: 100vh;
   display: flex;
   justify-content: center;
   align-items: center;
}
.poem,.content::before{
   background: url('./images/pic9.jpg');
   background-size: cover;
   background-attachment: fixed;
}
.poem .content{
   box-sizing: border-box;
   color:#f9f9f9;
   font-size: 20px;
   line-height: 2.2em;
   letter-spacing: 3px;
   text-align: center;
   padding: 40px 30px 35px 40px;
   background: hsla(0, 0%, 100%, 0.3);
   position: relative;
   overflow: hidden;
   z-index: 1;
}
.poem .content::before{
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   filter: blur(30px);
   margin: -30px;
   z-index: -1;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
在线编辑 (opens new window)
#CSS动画
上次更新: 2021/11/23, 15:19:29
Less的基本使用

Less的基本使用→

最近更新
01
svg基本绘制
11-23
02
滑动登录界面
11-23
03
CSS选取第n个标签元素
11-18
更多文章>
🖥️

© 2021 小胖墩er 💌 粤ICP备2021158933号 🛀 Theme by 💝 Vdoing

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×