插件窝 干货文章 如何用CSS实现带有透明分隔线的渐变背景进度条?

如何用CSS实现带有透明分隔线的渐变背景进度条?

进度 渐变 分隔 255 855    来源:    2025-03-19

要实现一个带有透明分隔线的渐变背景进度条,你可以使用CSS的linear-gradient来创建渐变背景,并使用repeating-linear-gradient来添加透明分隔线。以下是一个示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>渐变背景进度条</title>
    <style>
        .progress-bar {
            width: 100%;
            height: 20px;
            background: 
                /* 渐变背景 */
                linear-gradient(to right, #4CAF50, #8BC34A),
                /* 透明分隔线 */
                repeating-linear-gradient(
                    90deg,
                    transparent,
                    transparent 10px,
                    rgba(255, 255, 255, 0.5) 10px,
                    rgba(255, 255, 255, 0.5) 20px
                );
            background-blend-mode: multiply;
            border-radius: 10px;
            overflow: hidden;
            position: relative;
        }

        .progress-bar::before {
            content: '';
            display: block;
            height: 100%;
            width: 50%; /* 调整这个值来控制进度 */
            background-color: rgba(255, 255, 255, 0.3);
            border-radius: 10px;
            position: absolute;
            top: 0;
            left: 0;
        }
    </style>
</head>
<body>
    <div class="progress-bar"></div>
</body>
</html>

代码解释:

  1. 渐变背景

    • linear-gradient(to right, #4CAF50, #8BC34A):创建一个从左到右的线性渐变背景,颜色从#4CAF50渐变到#8BC34A
  2. 透明分隔线

    • repeating-linear-gradient(90deg, transparent, transparent 10px, rgba(255, 255, 255, 0.5) 10px, rgba(255, 255, 255, 0.5) 20px):创建一个重复的线性渐变,每隔10px添加一条透明的分隔线,分隔线的宽度为10px,颜色为半透明的白色。
  3. 背景混合模式

    • background-blend-mode: multiply;:将渐变背景和分隔线混合在一起,使分隔线看起来像是透明的。
  4. 进度条

    • ::before伪元素用于表示进度条的当前进度。通过调整width属性的值来控制进度条的进度。
  5. 圆角

    • border-radius: 10px;:使进度条的边角变得圆润。

调整进度:

  • 你可以通过调整.progress-bar::before中的width属性来控制进度条的进度。例如,设置为50%表示进度条完成了一半。

其他注意事项:

  • 你可以根据需要调整颜色、分隔线的宽度和透明度等参数,以适应不同的设计需求。

这个示例代码可以在大多数现代浏览器中正常工作。如果你需要支持旧版浏览器,可能需要添加一些浏览器前缀或使用其他技术来实现类似的效果。