前言
闪亮的玻璃图标悬浮效果
提示:以下是本篇文章的代码内容,供大家参考,相互学习
一、html代码
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<title>闪亮的玻璃图标悬浮效果</title>
<link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
<link rel="stylesheet" href="../css/5.css">
</head>
<body>
<div class="container">
<div class="color"></div>
<div class="color"></div>
<div class="color"></div>
<ul>
<li>
<a href="#"><i class="fa fa-qq" aria-hidden="true"></i></a>
</li>
<li>
<a href="#"><i class="fa fa-weixin" aria-hidden="true"></i></a>
</li>
<li>
<a href="#"><i class="fa fa-weibo" aria-hidden="true"></i></a>
</li>
<li>
<a href="#"><i class="fa fa-tencent-weibo" aria-hidden="true"></i></a>
</li>
<li>
<a href="#"><i class="fa fa-telegram" aria-hidden="true"></i></a>
</li>
</ul>
</div>
</body>
</html>
二、css
代码如下:
*{
margin:0;
padding:0;
/* 这个是告诉浏览器:你想要设置的边框和内边距的值是包含在总宽高内的 */
box-sizing: border-box;
}
.container{
position: absolute;
width: 100%;
/* 100%窗口高度 */
height: 100vh;
/* 弹性布局 水平垂直居中 */
display: flex;
justify-content: center;
align-items: center;
/* 渐变背景 自上而下 */
background: linear-gradient(to bottom, #2193b0, #6dd5ed);
}
.container::before{
content: "";
position: absolute;
bottom:0px;
width: 100%;
height: 50%;
z-index: 1;
border-top: 1px solid rgba(255,255,255,0.5);
/* 背景模糊 */
backdrop-filter: blur(5px);
}
.container .color{
position: absolute;
/* 模糊滤镜 数值越大越模糊 */
filter: blur(200px);
}
.container .color:nth-child(1){
background: #fd746c;
width: 800px;
height: 800px;
top:-450px;
}
.container .color:nth-child(2){
background: #cf8bf3;
width: 600px;
height: 600px;
bottom: -150px;
left: 100px;
}
.container .color:nth-child(3){
background: #fdb99b;
width: 400px;
height: 400px;
bottom: 50px;
right: 100px;
}
ul{
position: relative;
display: flex;
z-index: 2;
}
ul li{
position: relative;
list-style: none;
margin: 10px;
}
ul li a{
position: relative;
width: 80px;
height: 80px;
display: inline-block;
border-radius: 10px;
display: flex;
justify-content: center;
align-items: center;
text-decoration: none;
color: #fff;
font-size: 32px;
border:1px solid rgba(255,255,255,0.4);
border-right: 1px solid rgba(255,255,255,0.2);
border-bottom: 1px solid rgba(255,255,255,0.2);
/* 盒子阴影 */
box-shadow: 0px 5px 45px rgba(0,0,0,0.1);
/* 背景模糊 */
backdrop-filter: blur(2px);
/* 加个动画过渡,动画才不会太过生硬 */
transition: all 0.5s;
overflow: hidden;
}
ul li a:hover{
/* 鼠标移入元素沿Y轴上移 */
transform: translateY(-20px);
}
/* 加个扫光动画 */
ul li a::before{
content: "";
position: absolute;
top:0px;
left:0px;
width: 50px;
height: 100%;
background-color: #fff;
/* 元素沿X轴45横切,沿X轴右移150px */
transform: skewX(45deg) translateX(150px);
/* 动画过渡 */
transition: all 0.5s;
}
ul li a:hover::before{
/* 元素沿X轴45横切,沿X轴左移150px */
transform: skewX(45deg) translateX(-150px);
}
总结
- 渐变背景 自上而下: background: linear-gradient(to bottom, #2193b0, #6dd5ed);
- 背景模糊:backdrop-filter: blur(5px);
- 模糊滤镜: filter: blur(200px); //数值越大越模糊