css 语言 CSS 制作带进度的环形图表示例

CSS阿木 发布于 2025-06-18 3 次阅读


CSS 制作带进度的环形图表示例

环形图是一种常见的可视化工具,用于展示百分比或进度信息。在网页设计中,使用 CSS 制作带进度的环形图可以增加页面的互动性和美观性。本文将围绕 CSS 制作带进度的环形图表示例,详细介绍其原理、实现方法以及一些高级技巧。

一、环形图原理

环形图由一个圆形和两个半圆形组成,其中两个半圆形分别代表进度和背景。通过调整半圆形的长度,可以展示不同的进度值。

二、实现环形图

2.1 HTML 结构

我们需要定义一个 HTML 结构,用于承载环形图。

html

<div class="ring-progress">


<div class="ring-progress-background"></div>


<div class="ring-progress-bar"></div>


</div>


2.2 CSS 样式

接下来,我们使用 CSS 为环形图添加样式。

css

.ring-progress {


position: relative;


width: 200px;


height: 200px;


border-radius: 50%;


overflow: hidden;


}

.ring-progress-background {


position: absolute;


top: 0;


left: 0;


width: 100%;


height: 100%;


background-color: e0e0e0;


border-radius: 50%;


}

.ring-progress-bar {


position: absolute;


top: 0;


left: 0;


width: 50%;


height: 100%;


background-color: 4caf50;


border-radius: 50%;


transform: rotate(-90deg);


transform-origin: 0% 50%;


}


2.3 JavaScript 动画

为了实现动态的进度效果,我们需要使用 JavaScript 来控制进度条的旋转。

javascript

function setProgress(progress) {


const bar = document.querySelector('.ring-progress-bar');


bar.style.transform = `rotate(${progress}deg)`;


}

// 设置进度为 50%


setProgress(180);


三、高级技巧

3.1 动画效果

为了使环形图更加生动,我们可以添加动画效果。以下是一个简单的动画示例:

css

@keyframes progressAnimation {


0% {


transform: rotate(-90deg);


}


100% {


transform: rotate(${180 + 360 0.5}deg);


}


}

.ring-progress-bar {


animation: progressAnimation 2s linear infinite;


}


3.2 进度值显示

为了更直观地展示进度值,我们可以在环形图旁边添加一个文本标签。

html

<div class="ring-progress">


<div class="ring-progress-background"></div>


<div class="ring-progress-bar"></div>


<div class="ring-progress-text">50%</div>


</div>


css

.ring-progress-text {


position: absolute;


top: 50%;


left: 50%;


transform: translate(-50%, -50%);


font-size: 24px;


color: 4caf50;


}


3.3 自定义颜色和尺寸

为了满足不同的设计需求,我们可以通过 CSS 变量来自定义环形图的颜色和尺寸。

css

:root {


--progress-color: 4caf50;


--progress-background-color: e0e0e0;


--ring-size: 200px;


}

.ring-progress {


width: var(--ring-size);


height: var(--ring-size);


}

.ring-progress-background,


.ring-progress-bar {


background-color: var(--progress-background-color);


}

.ring-progress-bar {


background-color: var(--progress-color);


}


四、总结

本文详细介绍了使用 CSS 制作带进度的环形图表示例。通过 HTML 结构、CSS 样式和 JavaScript 动画,我们可以轻松实现一个美观且实用的环形图。我们还介绍了一些高级技巧,如动画效果、进度值显示和自定义颜色尺寸,以满足不同的设计需求。

在实际应用中,环形图可以用于展示网站访问量、任务完成度、评分等级等多种信息。掌握 CSS 制作环形图的方法,将为你的网页设计带来更多可能性。