CSS 边框也能动画?小施魔法~

简介: 为边框加上动画效果,往往会让交互显得更加友好。

image.png


边框动画



为边框加上动画效果,往往会让交互显得更加友好。

边框通常设置属性 border/box-shadow/outline,通过它们即可以实现不同的边框效果。


先来看一种基础的边框动画:【码上掘金】

code.juejin.cn/pen/7163822…


主要是设置 outlineoutline-offset 属性,hover 之后赋不同值,实现简单。

再看另一种边款环绕的效果动画:

code.juejin.cn/pen/7163831…

来源:# Fantastic CSS border animation Coco 大佬 tql


接下来我们来拆解一下这个动画效果的实现:


Step1



首先用 conic-gradient 设置矩形的背景为渐变色,并用 border: 0.5rem dotted lime 设置虚线边框。

code.juejin.cn/pen/7163843…

注意,这里还用 background-origin: border-box 调整了背景起始位置;


Step2



将 border 和 padding 进行层次区分,利用 background-clip 属性。

对比设置 3 种 clip 效果:

  1. background-clip:border-box,border-box
  2. background-clip:padding-box,border-box
  3. background-clip:content-box,border-box

code.juejin.cn/pen/7163848…

明显,第 2 种符合预期。


Step3



最后一步添加 border: 0.3rem dotted transparent; 然后加动效控制 conic-gradient;


--angle: 0deg;
conic-gradient(
  from var(--angle),
  #d53e33 0deg 90deg,
  #fbb300 90deg 180deg,
  #377af5 180deg 270deg,
  #399953 270deg 360deg
);
@property --angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
@keyframes rotate {
  to {
    --angle: 360deg;
  }
}

code.juejin.cn/pen/7163851…

如果想去掉中间的渐变内容,只留下边框动画,设置:


/* Create a border */
border: 0.5rem solid transparent;
/* Paint an image in the border */
border-image:
  conic-gradient(
    from var(--angle),
    #d53e33 0deg 90deg,
    #fbb300 90deg 180deg,
    #377af5 180deg 270deg,
    #399953 270deg 360deg
  ) 1
;

code.juejin.cn/pen/7163851…


小结



本篇核心是更加深刻地认识 3 个 CSS 属性:

1. conic-gradientimage.png2. background-originimage.png3. background-clipimage.png


其中,background-origin 和 background-clip 的区别注意区分

二者都是 css3 中引入的两个跟元素背景相关的属性,它们有相同的可选值,即 border、padding、content三种,而且这两个属性表示的都是元素背景与元素边框、补白 (padding) 和内容区域之间的某种关系。


background-origin 定义的是背景位置的起始点;而 background-clip 是对背景(图片和背景色)的切割~


相关文章
|
前端开发
如何设置 CSS 盒子模型的边框样式?
CSS盒子模型的边框样式可以通过`border`属性设置,包括边框宽度、样式和颜色。例如:`border: 2px solid red;` 设置了2像素宽的红色实线边框。也可分别设置四边,如`border-top`、`border-right`等。
|
前端开发 JavaScript
CSS 过渡和动画
CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术
744 143
|
自然语言处理 前端开发 JavaScript
用 通义灵码 一键生成“水波纹按钮”,连 CSS 动画都不用自己写了!
通义灵码是一款智能编程辅助工具,它可以根据自然语言指令自动生成高质量的代码。例如,只需输入“生成一个按钮,点击时带水波纹动画,模拟 Material Ripple 效果”,它就能生成具备完整交互逻辑、CSS 动画和良好性能的按钮组件。不仅如此,它还支持拓展功能,如长按触发提示、添加图标等,并能自动优化样式适配不同场景。通过通义灵码,开发者可以大幅提升效率,专注于创意实现,而不必纠结于繁琐的代码细节。
|
10月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
589 3
|
前端开发 容器
给 CSS 盒子模型添加边框时,需要注意什么?
在给CSS盒子模型添加边框时,需要注意边框的宽度、样式和颜色,以及它如何影响盒子的总尺寸和布局。边框会增加盒子的总宽度和高度,可能需要调整其他属性以保持布局的完整性。
|
JavaScript 前端开发
CSS3 动画和 JavaScript 动画的性能比较
具体的性能表现还会受到许多因素的影响,如动画的复杂程度、浏览器的性能、设备的硬件条件等。在实际应用中,需要根据具体情况选择合适的动画技术。
534 154
|
移动开发 前端开发 JavaScript
除了 CSS3,还有哪些技术可以实现动画效果?
除了 CSS3,还有哪些技术可以实现动画效果?
591 63
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
325 34
jQuery+CSS3实现404背景游戏动画源码
jQuery+CSS3实现404背景游戏动画源码
315 22

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    589
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    447
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    452
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    297
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    575
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    748
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1466
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    325
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1185
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    526