进度条的实现有四种主要方法。1. 使用单个 div 和 background 实现基础进度条,结构简单但不够灵活;2. 嵌套两个 div 分别作为容器和进度层,便于添加文字和样式控制;3. 利用伪元素结合渐变实现炫酷效果,适合动态和复杂样式需求;4. 使用 flex 布局制作分段式进度条,适用于多步骤流程展示。每种方法适用于不同场景,需综合考虑美观性、交互性和兼容性。

进度条在网页中很常见,比如表单填写、加载状态等场景。用 CSS 实现一个好看的进度条,其实有很多方式,主要区别在于结构和样式的选择。下面几种方法比较实用,适合不同需求。

使用 div + background 简洁实现
最简单的方式是使用一个 div 容器,通过设置宽度和背景色来表示当前进度。这种方式不需要复杂的 HTML 结构,适合快速实现基础效果。

.progress {
height: 10px;
background-color: #4caf50;
border-radius: 5px;
}- 优点:代码少,兼容性好。
- 缺点:不够灵活,不能直接显示百分比文字或动画。
- 如果你想加动画,可以结合
transition属性让宽度变化更平滑。
嵌套两个 div,外层做容器内层做进度
这种结构把进度条分成“整体容器”和“当前进度”两个部分,方便控制样式和添加细节。
立即学习“前端免费学习笔记(深入)”;
.progress-container {
width: 100%;
height: 20px;
background-color: #e0e0e0;
border-radius: 10px;
overflow: hidden;
}
.progress-bar {
height: 100%;
background-color: #2196f3;
transition: width 0.3s ease;
}- 可以在里面加上文字提示(比如
75%),定位在.progress-bar上面。 - 想要圆角进度条?可以在
.progress-bar上也加border-radius。 - 这种方式适合需要自定义颜色、高度、边框的场景。
使用伪元素打造渐变进度条
如果你想要更炫一点的效果,比如渐变色或者动态波浪进度条,可以用伪元素配合 linear-gradient 或者 radial-gradient。
用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容: 1) 建立数学模型 即用数学语言来描述最优化问题。模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。 2) 数学求解 数学模型建好以后,选择合理的最优化方法进行求解。 利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性、非线性的最小二乘问题。另外,该工具箱还提供了线性、非线性最小化,方程求解,

.progress-gradient {
position: relative;
height: 15px;
background: linear-gradient(to right, #ff7e5f, #feb47b);
}
.progress-gradient::after {
content: '';
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 60%;
background: inherit;
border-radius: 5px;
}- 伪元素的好处是可以单独控制进度区域的样式,不影响整体背景。
- 配合
clip-path或mask还能做出更复杂的效果。 - 动画方面也可以加个
animation来模拟流动效果。
利用 Flex 布局制作分段式进度条
有时候我们想展示多个步骤,每个步骤完成与否的状态。这时可以用 Flex 布局结合图标或数字来实现。
HTML 示例:
123
CSS 示例:
.step-progress {
display: flex;
align-items: center;
gap: 10px;
}
.step {
width: 30px;
height: 30px;
background-color: #ccc;
color: white;
text-align: center;
line-height: 30px;
border-radius: 50%;
transition: background-color 0.3s;
}
.step.active {
background-color: #4caf50;
}- 这种方式适合注册流程、多步骤操作等界面。
- 可以用 JS 控制类名切换进度状态。
基本上就这些方式了。你可以根据项目需求选择合适的方法,有的追求简洁,有的需要美观和交互。不复杂但容易忽略的是:记得考虑响应式设计和浏览器兼容问题,尤其是旧版浏览器对渐变和伪元素的支持情况。









