用css实现一个类似于elementUI中Loading组件有缺口的加载圆环

直接上代码:

HTML部分

html 复制代码
<div id="app">
  <div class="loaderContainer">
    <div class="loaderContainer__icon"></div>
    <p class="loaderContainer__text">加载中...</p>
  </div>
</div>

CSS部分

css 复制代码
html,
body,
#app {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.loaderContainer {
  display: flex;
  flex-direction: column;
  align-items: center;

  .loaderContainer__icon {
    width: 42px;
    height: 42px;
    color: #0057ff;
    border-radius: 50%;
    border: 3px solid #0057ff;
    border-top-color: #ffffff;
    animation: spin 1s infinite linear;
    background-color: transparent;
  }

  .loaderContainer__text {
    margin-top: 10px;
    font-size: 14px;
    color: #0057ff;
  }
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

核心思想

1,使用一个div,设置宽高相等、再设置border-radius为50%,形成一个圆;

2,通过border给圆的边框设置宽度和颜色,并通过border-top-color设置和当前背景色一致,实现有缺口的视觉效果。

3,将圆的background-color设置为transparent透明,形成一个空心的圆环。

4,定义spin动画,使圆环旋转,实现加载的视觉效果

相关推荐
宇珩前端踩坑日记14 小时前
怎么让 Vue DevTools 用 Trae 打开源码
前端·trae
小徐不会敲代码~14 小时前
Vue3 学习 6
开发语言·前端·vue.js·学习
CreasyChan14 小时前
C#中单个下划线的语法与用途详解
前端·c#
舆通Geo优化14 小时前
2025年GEO优化选哪家好?长沙GEO优化公司排名:GEO服务商哪家靠谱?
javascript·css·html
C_心欲无痕14 小时前
react - useState更新机制(直接更新和函数式更新)
前端·javascript·react.js
GDAL14 小时前
Tailwind CSS 菜单实现全面讲解教程(基于书签篮网站场景)
前端·css·菜单
m5655bj14 小时前
如何通过 C# 实现 PDF 页面裁剪
前端·pdf·c#
这是个栗子14 小时前
前端开发中的常用工具函数(持续更新中...)
前端·javascript·算法
zhangsansecond14 小时前
vs创建 基于ASP.NET Framework 的 SOAP 协议 Web 服务,https无法访问
前端·https·asp.net
Reese_Cool14 小时前
一篇文章梳理 HTML + CSS 核心知识(含响应式与 Sass)
前端·css·html