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

图解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日

相关文章

  • 微信公众号支付H5调用支付解析

    当网站开发者需要实现微信公众号的在线支付功能时,可能会使用微信公众号支付进行处理。本文将介绍如何在网站中调用微信公众号支付H5。 准备工作 在开始前,需要先完成以下准备工作: 在微信商户平台注册一个商户号,并通过相应的审核流程。 在公众号后台配置JSAPI支付的安全域名。 H5调用支付 本节将介绍如何使用微信公众号支付H5进行在线支付。 第一步:引入JS文件…

    css 2023年6月10日
    00
  • 原生JS实现自定义滚动条效果

    下面是详细讲解原生JS实现自定义滚动条效果的完整攻略。 1. 前置知识 在实现自定义滚动条之前,你需要掌握基础的 HTML、CSS、JavaScript 知识,特别是以下内容: HTML 中设置元素的高度和宽度 CSS 中设置 overflow 属性和滚动条样式 JavaScript 中事件的绑定和移除、元素的属性操作、定时器的使用等 2. 实现思路 实现自…

    css 2023年6月10日
    00
  • div+css相对定位和绝对定位用法实例详解

    div+CSS相对定位和绝对定位用法实例详解 在Web开发中,CSS定位是一种非常重要的技术,它可以帮助我们控制HTML元素的位置和大小。其中,相对定位和绝对定位是两种常见的定位方式。本攻略将详细介绍相对定位和绝对定位的用法,并提供两个示例说明。 相对定位 相对定位是指元素相对于其原始位置进行定位。相对定位不会改变元素的布局,只会影响元素的位置。以下是相对定…

    css 2023年5月18日
    00
  • jquery 元素相对定位代码

    jQuery是一款基于JavaScript的快速、简洁的JavaScript库,它封装了许多常见的基础性操作(如DOM操作、事件处理、动画效果等),使用起来更加方便快捷。下面详细讲解和演示如何使用jQuery元素相对定位的代码。 1.概述 在jQuery中,通过设置元素的CSS属性来实现元素相对定位。该定位方式依赖于元素的父级元素,因此需要理解元素嵌套层次关…

    css 2023年6月10日
    00
  • js实现选项卡内容切换以及折叠和展开效果【推荐】

    下面我会为你详细讲解”js实现选项卡内容切换以及折叠和展开效果”的实现方法。 一、实现选项卡切换 选项卡切换是网站中常见的交互效果,下面是实现选项卡切换的步骤: html代码中添加需要切换的内容,每一个选项卡对应一个内容区域,为每一个选项卡和内容区域添加相应的id,如下: <div class="tab"> <ul cl…

    css 2023年6月10日
    00
  • 移动开发之自适应手机屏幕宽度

    移动开发之自适应手机屏幕宽度 在移动开发中,适配不同屏幕尺寸是一个常见的问题。其中,自适应布局是一种经典的解决方案,可以适配不同大小的设备,提高用户体验。下面是自适应手机屏幕宽度的完整攻略: 1. 使用viewport设置屏幕宽度 Viewport是指“视窗”,指的是​​用户实际看到的网页区域。在移动设备上,viewport的宽度与屏幕的宽度有关系。因此,我…

    css 2023年6月10日
    00
  • 如何使用html5与css3完成google涂鸦动画

    如何使用HTML5与CSS3完成Google涂鸦动画 HTML5和CSS3为开发者提供了更多的动画和互动效果。Google涂鸦动画是其中一种很好的表现方式,可以被运用到很多不同的场景中。下面就是使用HTML5和CSS3实现Google涂鸦动画的完整攻略。 步骤一:制作素材 首先,你需要制作你的涂鸦素材,这是Google涂鸦动画的核心部分。你可以使用任何绘图工…

    css 2023年6月10日
    00
  • VUE在线调用阿里Iconfont图标库的方法

    下面是详细讲解“VUE在线调用阿里Iconfont图标库的方法”的完整攻略。 步骤一:引入Iconfont资源 首先,在阿里Iconfont网站上,选中需要使用的图标,并将它们添加进自己的项目中; 点击右上角的下载按钮,选择下载方式为“Symbol”,获取Symbol所需的相关库文件; 在Vue项目中,创建一个新的CSS文件,并在其中引入样式库文件,例如: …

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