CSS 渐变边框及动画

news/2024/11/24 4:38:56/

转载请注明出处,点击此处 查看更多精彩内容

预览效果

用 CSS 实现渐变边框及动画,下面对关键点进行解释说明,查看完整代码及预览效果请 点击这里。

简单说明原理:使用伪元素 ::before 绘制一个渐变色,然后使用伪元素 ::after 绘制背景,使其遮住渐变色的一部分,仅保留边框部分,然后添加旋转动画即可。

DOM 结构

<div class="container"></div>
.container {border-radius: var(--border-radius);overflow: hidden;
}

overflow: hidden 防止内部元素溢出。

渐变背景

使用 ::before 伪元素实现一个径向渐变背景。

.container::before {content: "";position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);display: block;width: 150%;padding-bottom: 150%;background: conic-gradient(from 180deg at 50% 50%,#e92a67 0deg,#a853ba 112.5deg,#2a8af6 228.75deg,rgba(42,138,246,0) 360deg);z-index: -1;
}

这里没有直接设置伪元素高度,而是使用 width: 200%; padding-bottom: 200%; 绘制一个正方形,并且尺寸大于父元素,防止动画时背景不能完全覆盖父元素。

渐变边框

使用 ::after 伪元素作为遮罩及背景,遮住 ::before 伪元素使其仅展示出边框区域。

.container::after {content: "";position: absolute;inset: var(--border-size);background: var(--bg-color);border-radius: var(--border-radius);z-index: -1;
}

添加动画

:before 添加旋转动画。

@keyframes rotate {from {transform: translate(-50%, -50%) rotate(0deg);}to {transform: translate(-50%, -50%) rotate(-360deg);}
}.container::before {...,animation: rotate 3s linear infinite;
}

边框追逐效果

通过设置分区的渐变背景即可完成边框上多线条相互追逐的炫酷效果。

.container {--border-color: conic-gradient(from 180deg at 50% 50%,#e92a67 0deg, transparent 90deg, transparent 180deg, #2a8af6 180deg, transparent 270deg);
}

http://www.ppmy.cn/news/942480.html

相关文章

【免费白嫖服务器】速看!

免费白嫖阿里云服务器攻略 最近阿里云高校推出了&#xff1a;在家实践计划&#xff0c;可以免费领取6个月服务器。 前提条件&#xff1a;你需要是学生。 传送门 是学生的赶快去领取吧&#xff0c;良心云&#xff01; 转载自&#xff1a;https://www.cnblogs.com/HGNET/p/1239…

CF选做

多动动脑子吧 已经完成了&#xff1a; 9 题目难度主要在1900-2500 题目 CF1220D 1900 想法题&#xff0c;考虑两个是奇数的话肯定可以&#xff0c;一个奇数一个偶数肯定不可以&#xff0c;两个偶数同时除2就好 统计一个long long的数后面0的个数&#xff0c;可以用__builtin_…

[CF 126B] Password

代码&#xff1a; KMP&#xff1a; #include<bits/stdc.h> using namespace std; const int N2e610; char s[N]; int nex[N];inline void kmp(){int nstrlen(s1);int j0;nex[1]0;for(int i2;i<n;i){while(j&&s[j1]!s[i]) jnex[j];if(s[j1]s[i]) j;nex[i]j;}…

cf每日一题

Codeforces Round #812 (Div. 2) &#xff08;&#x1f54a;了好久呜呜呜~&#xff09; 题目大意&#xff1a;对一个序列可以进行一次操作&#xff1a;选择两个索引 l , r &#xff0c;对 l , r 范围内的数都减一&#xff0c;然后称f(a)为将所有数删为0所需要的次数&#xff0…

腾讯云服务器续费太贵了,有什么办法解决呢?

腾讯云服务器续费太贵了,有什么办法解决呢? 腾讯云服务器续费比开新户贵太多怎么办?比如&#xff1a;去年刚买了1G2核的腾讯云器&#xff0c;一年才99元/年。到期了续费居然要1000左右一年。太贵了吧&#xff0c;才1核1G的云服务器。阿里云也是一样&#xff0c;云服务器续费…

CF c题

C. Make Equal With Mod time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given an array of nn non-negative integers a1,a2,…,ana1,a2,…,an. You can make the following operation: c…

CF-div4练习题

题目&#xff1a;Dashboard - Codeforces Round 640 (Div. 4) - CodeforcesCodeforces. Programming competitions and contests, programming communityhttps://codeforces.com/contest/1352 A&#xff1a;整数之和 题解&#xff1a; #include <bits/stdc.h>using nam…

cf交互题

链接 #include <iostream> #include <algorithm> using namespace std;const int N 1e4 10;int a[N], b[N];int main() {int n, k;scanf("%d %d", &n, &k);for(int i 1; i < n - 1; i) {printf("and %d %d\n", i, i1);fflush(s…