图解CSS3制作圆环形进度条的实例教程

yizhihongxing

图解CSS3制作圆环形进度条的实例教程

前言

圆环形进度条是 Web 开发中非常常见的一种元素,它可以用来展示某个任务的完成百分比或者加载进度等信息。本教程将演示如何使用 CSS3 制作一个简单的圆环形进度条。

准备工作

首先我们需要准备一个 HTML 页面,并且引入 CSS 样式文件。

<html>
  <head>
    <link rel="stylesheet" href="style.css" />
  </head>
  <body>
    <div class="progress-ring">
      <div class="progress-label">
        <span class="progress-value">0%</span>
      </div>
    </div>
  </body>
</html>

其中,.progress-ring 类表示整个进度条元素,.progress-label 类表示进度条内的百分比文字,.progress-value 类表示百分比数值。我们需要使用 CSS 样式来控制这些元素的样式。

初试进度条

首先,我们可以先创建一个简单的圆环,用来表示进度条的整体样式。这可以通过 CSS 边框和圆角实现。

.progress-ring {
  width: 150px;
  height: 150px;
  border: 10px solid #d3d3d3;
  border-radius: 50%;
}

以上代码将生成一个宽 150px、高 150px、边框为 10px 的圆环。

实现进度条内部百分比

为了在进度条内显示百分比,我们需要将一个 div 盒子插入到 .progress-ring 中。

<div class="progress-ring">
  <div class="progress-label">
    <span class="progress-value">0%</span>
  </div>
</div>

并使用 CSS 控制其样式。

.progress-label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
.progress-value {
  font-size: 24px;
  font-weight: bold;
}

此时我们将百分比置于进度条的中心位置,同时调整其字体大小和加粗程度。

实现圆环形进度条

本教程的核心是如何创建一个圆环形进度条。这可以通过渐变 linear-gradient 实现。

background-image: conic-gradient(from -90deg, #4caf50 0%, #4caf50 50%, #d3d3d3 50%, #d3d3d3 100%);

以上代码表示一个从 -90 度开始渐变的 conic-gradient 渐变背景,将由 #4caf50 到 #d3d3d3 变化。其中,50% 的位置为进度条完成位置。

为了控制进度条的进度,我们还需要使用 CSS 的 animation 属性。

animation: progress 5s ease-in-out forwards;

以上代码表示在 5 秒内,循环播放名为“progress”的动画,动画的时间函数为 ease-in-out。我们需要在后面继续定义“progress”动画。

@keyframes progress {
  0% {
    background-image: conic-gradient(from -90deg, #4caf50 0%, #4caf50 0%, #d3d3d3 0%, #d3d3d3 100%);
  }
  100% {
    background-image: conic-gradient(from -90deg, #4caf50 0%, #4caf50 100%, #d3d3d3 100%, #d3d3d3 100%);
  }
}

以上代码表示在动画开始时,进度条的颜色为 #4caf50,完成度为 0%,在动画结束时,进度条的颜色为 #4caf50,完成度为 100%。我们可以通过调整动画时间参数来控制进度条完成的速度。

完整代码

最终的代码如下:

<html>
  <head>
    <title>图解CSS3制作圆环形进度条的实例教程</title>
    <style>
      .progress-ring {
        position: relative;
        display: inline-block;
        width: 150px;
        height: 150px;
        margin: 1em;
        background-image: conic-gradient(from -90deg, #4caf50 0%, #4caf50 50%, #d3d3d3 50%, #d3d3d3 100%);
        border-radius: 50%;
        animation: progress 5s ease-in-out forwards;
      }
      .progress-label {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
      }
      .progress-value {
        font-size: 24px;
        font-weight: bold;
      }
      @keyframes progress {
        0% {
          background-image: conic-gradient(from -90deg, #4caf50 0%, #4caf50 0%, #d3d3d3 0%, #d3d3d3 100%);
        }
        100% {
          background-image: conic-gradient(from -90deg, #4caf50 0%, #4caf50 100%, #d3d3d3 100%, #d3d3d3 100%);
        }
      }
    </style>
  </head>
  <body>
    <div class="progress-ring">
      <div class="progress-label">
        <span class="progress-value">0%</span>
      </div>
    </div>
  </body>
</html>

结语

以上就是图解 CSS3 制作圆环形进度条的完整攻略,希望对你有所帮助。通过改变上述代码的参数,你也可以制作出符合自己需求的进度条。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:图解CSS3制作圆环形进度条的实例教程 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • css美化表格让其隔行变色显示

    下面是讲解“CSS美化表格让其隔行变色显示”的完整攻略。 步骤一:为表格添加类名 首先,在HTML文件中需要对表格进行标记,为其添加一个自定义的类名。比如: <table class="table-striped"> <thead> <tr> <th>姓名</th> <th…

    css 2023年6月10日
    00
  • vue 图片路径 “@/assets“ 报错问题及解决

    针对 “vue图片路径 @/assets 报错问题” 进行一下详细的讲解和解决攻略。 问题描述 在使用 Vue 开发中,当需要引入项目中的图片时,可能会遇到以下的报错: ./src/views/Home.vue Module not found: Error: Can’t resolve ‘@/assets/images/name.png’ in ‘D:\p…

    css 2023年6月10日
    00
  • CSS3实现3D文字动画效果

    下面是“CSS3实现3D文字动画效果”的完整攻略: 1.准备工作 首先需要创建一个HTML文件,并在文件中引入CSS文件,以便进行样式设置。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CSS3实现3D文…

    css 2023年6月10日
    00
  • CSS基础详解

    CSS基础详解 概述 CSS是一种样式表语言,它用于描述HTML或XML(包括SVG、XHTML等)文档的表现。CSS可以控制页面的布局、字体、颜色、背景与其它效果。使用CSS可以将页面样式与页面内容(HTML代码)分离。在网页开发中,不仅需要掌握HTML语言,还需要熟悉CSS语言。 基础语法 CSS的基础语法由选择器和声明块组成,如下所示: 选择器 { 属…

    css 2023年6月9日
    00
  • html的基本使用包括链接、样式表、span和div等等

    下面我将详细讲解关于HTML的基本使用,包括链接、样式表、span和div等的完整攻略。 链接 在HTML中,链接是指通过在文本或图片上添加链接,使得用户可以通过点击该文本或图片来跳转到另一个网页或同一网页上的其他部分。HTML中使用<a>标签来实现链接功能,其中href属性用来指定链接的URL地址,例如: <a href="ht…

    css 2023年6月9日
    00
  • 新手建站入门教程帖⑦:做一个漂亮的网站就这么简单

    以下是详细讲解“新手建站入门教程帖⑦:做一个漂亮的网站就这么简单”的完整攻略。 1. 确定网站风格和内容 在制作网站之前,我们应该首先确定网站的设计风格和内容。可以先画出网站的草图,或者搜索一些相似领域的优秀网站,作为参考。 2. 选择合适的主题 选择一个合适的主题,是制作漂亮网站的必要条件。WordPress提供了很多现成的主题,可以根据自己网站的需求进行…

    css 2023年6月10日
    00
  • javascript实现贪吃蛇经典游戏

    下面是“JavaScript实现贪吃蛇经典游戏”的完整攻略及示例说明: 一、游戏结构 首先,我们需要了解贪吃蛇游戏的结构。通常,贪吃蛇游戏由三部分组成:游戏区域、食物、蛇。其中,游戏区域是游戏显示的主要区域,食物是蛇需要吃的目标,蛇则是游戏的主角。 二、游戏实现 1. 游戏区域 贪吃蛇游戏通常是在一个固定尺寸的游戏区域内进行的。实现游戏区域可以采用HTML中…

    css 2023年6月10日
    00
  • Message组件实现发财UI 示例详解

    下面是关于“Message组件实现发财UI 示例详解”的完整攻略。 标题 Message组件实现发财UI 示例详解 引言 在现代的前端开发中,UI组件化已经成为了一种趋势,组件的重用程度越高,越能提高项目的开发效率与质量,降低维护难度。而其中,消息提示框信息的实现是常见的需求,本文针对此需求,采用了Vue框架及Element UI组件库,以Message组件…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部