写点什么

纯 CSS 神奇的边框特效

作者:德育处主任
  • 2022 年 3 月 12 日
  • 本文字数:744 字

    阅读完需:约 2 分钟

纯CSS 神奇的边框特效

本文简介

点赞 + 关注 + 收藏 = 学会了


阅读本文需要 css 基础。要了解 border-radius 的用法。如果不懂的请先自行查阅 border-radius 的文档。


本期要做的特效如下图所示,请耐心看,这是个 gif 动图



这是一个会动的 div


公式

原理其实很简单,div 原本是方的,只需改成圆形即可。


所以我们会用到 border-radius 这个属性。


border-radius 可以让元素变成圆角,这取决于你所设置的值。


要想让 4 个角都变成大小不一的圆角,且过渡顺滑,需要使用以下公式:



相同的颜色加起来的和等于 100,角与角之间的过渡就会变得比较顺滑。


注意后半段的顺序(蓝色,绿色,绿色,蓝色)。


比如 border-radius: 60% 40% 59% 41% / 55% 36% 64% 45%;


编码

这里我还会用了 CSS 动画 ,让元素一直不规则的动起来。


<style>.box {  width: 600px;  height: 600px;  background: #5753C9;  background-image: linear-gradient(-225deg, #3D4E81 0%, #5753C9 48%, #6E7FF3 100%);  transition: border-radius 3s linear;  border-radius: 60% 40% 59% 41% / 55% 36% 64% 45%;  animation: borderAnimation 50s infinite;}
@keyframes borderAnimation{ 0% {border-radius: 60% 40% 59% 41% / 55% 36% 64% 45%;} 25% {border-radius: 40% 60% 37% 63% / 42% 56% 44% 58%;} 50% {border-radius: 50% 50% 39% 61% / 61% 69% 31% 39%;} 75% {border-radius: 59% 41% 68% 32% / 48% 52% 48% 62%;}}</style>
<div class="box" id="box"></div>
复制代码


动画里每次修改 border-radius 都是根据上面的公式来计算。


代码仓库


推荐阅读


点赞 + 关注 + 收藏 = 学会了

发布于: 刚刚阅读数: 2
用户头像

反派 2019.03.19 加入

用键盘绣花

评论

发布
暂无评论
纯CSS 神奇的边框特效_css3_德育处主任_InfoQ写作平台