作为一个频繁对博客进行改进的人,我深知花里胡哨的CSS效果对于吸引读者尤为重要。在这里,我汇总了一些炫酷的CSS效果,并提供了简要的预览和实现思路,以方便那些不太熟悉的朋友也能轻松上手。同时,我会持续寻找优秀的效果,逐步添加到博客中,其中部分资源来自网络。
相信有了以下示例,很多不会css动画效果的朋友,也就会了
列表文字图标
实现思路:
- 主要看css部分,先固定 span 标签宽高为,圆角 50%,然后设定行高,让字符垂直居中;
- 设定 overflow: hidden,限制字符溢出;
- 然后设定 letter-spacing: 200px,让字符间距变大,不让第二个字符显示到span中;
- 然后设定 text-indent: 12px,来让第一个字符居中。
HTML部分
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>04 第一个字符串生成文字图标</title>
</head>
<body>
<div class="app">
<ul>
<li><span>第一个字符串生成文字图标</span>第一个字符串生成文字图标</li>
<li><span>用CSS可以做什么?</span>用CSS可以做什么?</li>
<li><span>前端的致命诱惑</span>前端的致命诱惑</li>
</ul>
</div>
</body>
</html>
css部分
*{
margin: 0;
padding: 0;
list-style: none;
transition: .5s;
}
html,body{
background-color: #f5f5f5;
color: #fff;
font-size: 14px;
}
.app{
width: 100%;
height: 100vh;
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.app ul {
max-width: 300px;
}
.app ul li{
width: 100%;
color: #152239;
font-size: 16px;
line-height: 42px;
margin: 15px 0;
float: left;
}
.app ul li span{
width: 42px;
height: 42px;
line-height: 40px;
color: #1E47ED;
font-size: 18px;
font-weight: 700;
text-indent: 12px;
border-radius: 50%;
display: block;
float: left;
overflow: hidden;
background-color: #eaeaea;
letter-spacing: 20px;
margin-right: 15px;
}
呼吸灯效果
实现思路:
- 写出三个圆,class 分别为 .red、.green、.blue
- css 部分主要使用 animation 来实现边框及其阴影的大小变化,和其透明度的变化
- 这个效果可以用作在网站的整体 Loading,也可以放在网站首屏当一个 banner 的背景也是非常棒的!
Html部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>好看的呼吸灯效果</title>
</head>
<body>
<div class="app">
<span class="red"></span>
<span class="green"></span>
<span class="blue"></span>
</div>
</body>
</html>
css部分
*{
margin:0;
padding: 0;
}
body,html{
background-color: #000;
}
.app{
width:100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
span{
width: 60px;
height: 60px;
margin: 40px;
border-radius: 50%;
}
.red{
animation: just1 2s ease-in-out infinite alternate;
}
.green{
animation: just2 3s ease-in-out infinite alternate;
}
.blue{
animation: just3 4s ease-in-out infinite alternate;
}
@keyframes just1{
0%{
border: 5px solid rgba(255,0,0,0);
box-shadow: 0 0 0 rgba(255,0,0,0),0 0 0 rgba(255,0,0,0) inset;
}
100%{
border: 5px solid rgba(255,0,0,1);
box-shadow: 0 0 70px rgba(255,0,0,0.7),0 0 15px rgba(255,0,0,0.5) inset;
}
}
@keyframes just2{
0%{
border: 5px solid rgba(0,255,0,0);
box-shadow: 0 0 0 rgba(0,255,0,0),0 0 0 rgba(0,255,0,0) inset;
}
100%{
border: 5px solid rgba(0,255,0,1);
box-shadow: 0 0 70px rgba(0,255,0,0.7),0 0 15px rgba(0,255,0,0.5) inset;
}
}
@keyframes just3{
0%{
border: 5px solid rgba(0,0,255,0);
box-shadow: 0 0 0 rgba(0,0,255,0),0 0 0 rgba(0,0,255,0) inset;
}
100%{
border: 5px solid rgba(0,0,255,1);
box-shadow: 0 0 70px rgba(0,0,255,0.7),0 0 15px rgba(0,0,255,0.5) inset;
}
}
动态毛玻璃
实现思路:
- 两个圆形 div(.circle),以及模糊块(.bg-filter)
- 使用animation 属性以及不同的参数来实现动效,产生动画视觉效果
- 用 backdrop-filter 属性中的 blur 参数来模拟毛玻璃效果,数值越大,模糊效果越重,可适当调试参数,直到你喜欢为止
- 此效果可适用于登录窗口,网站背景或者一些卡片列表中,使网页更具科技感和空间感。
Html部分
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
<title>动态的毛玻璃背景</title>
</head>
<body>
<div class="app">
<div class="box">
<div class="circle-box">
<div class="circle"></div>
<div class="circle"></div>
</div>
<div class="bg-filter"></div>
</div>
</div>
</body>
</html>
css部分
.app{
width: 100%;
height: 100vh;
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.box{
width: 400px;
height: 300px;
position: relative;
}
.circle-box{
width: 100%;
height: 100%;
border-radius: 10px;
position: absolute;
overflow: hidden;
}
.circle:first-child{
width: 120px;
height: 120px;
border-radius: 50%;
border: 30px solid #7BF52A;
box-sizing: border-box;
position: absolute;
top: -38px;
left: -40px;
animation: move-y 3.5s linear infinite;
}
.circle:last-child{
width: 120px;
height: 120px;
border-radius: 50%;
background: linear-gradient(136deg, #7BF52A 0%, #FFCD56 100%);
box-sizing: border-box;
position: absolute;
bottom: -30px;
right: -30px;
animation: move-y 5s ease-in-out infinite;
}
.bg-filter{
width: 100%;
height: 100%;
background: rgba(255,255,255,.05);
box-shadow: 0 2px 6px rgba(0,0,0,0.1);
backdrop-filter: blur(6px);
border-radius: 10px;
box-sizing: border-box;
position: absolute;
}
@keyframes move-y {
0% {
transform: translateY(0);
}
50% {
transform: translateY(-16px);
}
100% {
transform: translateY(0);
}
}
图片因为上传后格式转换了,这篇就分享这几个,后面会再分享
本文共 529 个字数,平均阅读时长 ≈ 2分钟
评论 (0)