使用HTML和CSS创建圆形进度条

使用HTML和CSS创建圆形进度条

参考: Create a Circular Progress Bar using HTML and CSS

在现代网页设计中,圆形进度条是一种常见的元素,它用于展示进度信息,如文件上传、下载、任务完成度等。本文将详细介绍如何使用HTML和CSS来创建一个圆形进度条,并提供10-20个示例代码,帮助读者更好地理解和实践。

基础圆形进度条

首先,我们从最基础的圆形进度条开始。以下是一个简单的HTML和CSS代码示例,创建一个基础的圆形进度条。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>基础圆形进度条 - how2html.com</title>
<style>
  .progress-circle {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: #e6e6e6;
    position: relative;
  }
  .progress-circle:after {
    content: 'how2html.com';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
  }
</style>
</head>
<body>
<div class="progress-circle"></div>
</body>
</html>

Output:

使用HTML和CSS创建圆形进度条

带有百分比的圆形进度条

接下来,我们在圆形进度条中添加文本来显示进度的百分比。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>带百分比的圆形进度条 - how2html.com</title>
<style>
  .progress-circle {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: #e6e6e6;
    position: relative;
    text-align: center;
    line-height: 100px;
    font-size: 20px;
    color: #333;
  }
</style>
</head>
<body>
<div class="progress-circle">50%</div>
</body>
</html>

Output:

使用HTML和CSS创建圆形进度条

使用CSS动画的圆形进度条

为了让圆形进度条看起来更生动,我们可以添加CSS动画来模拟进度的变化。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动画圆形进度条 - how2html.com</title>
<style>
  @keyframes loading {
    0% { background-position: 0 0; }
    100% { background-position: 100px 0; }
  }
  .progress-circle {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: linear-gradient(to right, #4ca1af 50%, #c4e0e5 50%);
    background-size: 200% 100%;
    position: relative;
    animation: loading 2s linear infinite;
  }
  .progress-circle:after {
    content: 'how2html.com';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
  }
</style>
</head>
<body>
<div class="progress-circle"></div>
</body>
</html>

Output:

使用HTML和CSS创建圆形进度条

使用SVG的圆形进度条

SVG是一种非常适合制作圆形进度条的技术。下面是一个使用SVG创建的圆形进度条示例。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SVG圆形进度条 - how2html.com</title>
<style>
  .progress-circle {
    width: 100px;
    height: 100px;
  }
  .progress-circle svg {
    transform: rotate(-90deg);
  }
  .progress-circle circle {
    fill: none;
    stroke-width: 10;
    stroke: #4ca1af;
    stroke-dasharray: 314; /* Circumference of the circle */
    stroke-dashoffset: 157; /* Half of 314 */
    transition: stroke-dashoffset 1s;
  }
</style>
</head>
<body>
<div class="progress-circle">
  <svg width="100" height="100">
    <circle cx="50" cy="50" r="50" stroke="#e6e6e6" stroke-width="10" fill="none" />
    <circle cx="50" cy="50" r="50" class="progress" />
  </svg>
  <div class="progress-text">how2html.com</div>
</div>
</body>
</html>

Output:

使用HTML和CSS创建圆形进度条

使用CSS变量的动态圆形进度条

CSS变量可以让我们更灵活地控制圆形进度条的样式和行为。以下是一个使用CSS变量的圆形进度条示例。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动态圆形进度条 - how2html.com</title>
<style>
  :root {
    --progress: 75;
  }
  .progress-circle {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: conic-gradient(#4ca1af calc(var(--progress) * 1%), #e6e6e6 0);
    position: relative;
  }
  .progress-circle:after {
    content: attr(data-progress) '%';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
  }
</style>
</head>
<body>
<div class="progress-circle" data-progress="75"></div>
</body>
</html>

Output:

使用HTML和CSS创建圆形进度条

带有阴影效果的圆形进度条

阴影效果可以让圆形进度条看起来更有立体感。以下是一个带有阴影效果的圆形进度条示例。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>带阴影的圆形进度条 - how2html.com</title>
<style>
  .progress-circle {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: #e6e6e6;
    box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2);
    position: relative;
  }
  .progress-circle:after {
    content: 'how2html.com';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
  }
</style>
</head>
<body>
<div class="progress-circle"></div>
</body>
</html>

Output:

使用HTML和CSS创建圆形进度条

使用伪元素的圆形进度条

伪元素可以帮助我们在不增加额外HTML元素的情况下,实现更复杂的圆形进度条设计。以下是一个使用伪元素的圆形进度条示例。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>使用伪元素的圆形进度条 - how2html.com</title>
<style>
  .progress-circle {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: #e6e6e6;
    position: relative;
  }
  .progress-circle:before,
  .progress-circle:after {
    content: '';
    position: absolute;
    border-radius: 50%;
  }
  .progress-circle:before {
    width: 80px;
    height: 80px;
    background: white;
    top: 10px;
    left: 10px;
  }
  .progress-circle:after {
    width: 100px;
    height: 100px;
    background: conic-gradient(#4ca1af 75%, #e6e6e6 0);
    top: 0;
    left: 0;
  }
  .progress-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    z-index: 10;
    font-size: 20px;
    color: #333;
  }
</style>
</head>
<body>
<div class="progress-circle">
  <div class="progress-text">how2html.com</div>
</div>
</body>
</html>

Output:

使用HTML和CSS创建圆形进度条

带有渐变色的圆形进度条

渐变色可以让圆形进度条看起来更具视觉冲击力。以下是一个带有渐变色的圆形进度条示例。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>渐变色圆形进度条 - how2html.com</title>
<style>
  .progress-circle {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: conic-gradient(#4ca1af 75%, #c4e0e5 25%);
    position: relative;
  }
  .progress-circle:after {
    content: 'how2html.com';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
  }
</style>
</head>
<body>
<div class="progress-circle"></div>
</body>
</html>

Output:

使用HTML和CSS创建圆形进度条

使用多层圆形的进度条

通过使用多层圆形,我们可以创建出更复杂和有趣的进度条效果。以下是一个使用多层圆形的进度条示例。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>多层圆形进度条 - how2html.com</title>
<style>
  .progress-circle {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: #e6e6e6;
    position: relative;
  }
  .progress-circle:before,
  .progress-circle:after {
    content: '';
    position: absolute;
    border-radius: 50%;
  }
  .progress-circle:before {
    width: 90px;
    height: 90px;
    background: conic-gradient(#4ca1af 75%, transparent 25%);
    top: 5px;
    left: 5px;
  }
  .progress-circle:after {
    width: 70px;
    height: 70px;
    background: white;
    top: 15px;
    left: 15px;
  }
  .progress-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    z-index: 10;
    font-size: 20px;
    color: #333;
  }
</style>
</head>
<body>
<div class="progress-circle">
  <div class="progress-text">how2html.com</div>
</div>
</body>
</html>

Output:

使用HTML和CSS创建圆形进度条

结论

通过本文的介绍和示例代码,我们可以看到使用HTML和CSS创建圆形进度条有多种方法和风格。从基础的静态进度条到动态的、带有动画的进度条,再到使用SVG和CSS变量的高级应用,每种方法都有其独特之处和适用场景。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程