源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

[CSS] 多步骤进度条的实现原理及代码

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2013-10-9 15:17:11 | 显示全部楼层 |阅读模式
实现方法其实很简单,只需要把每一步分隔处的箭头切下来,然后灵活利用background-image和background-color来实现,接下来针对三种状态给HTML结构标签加不同的类来定义样式 很多分步骤的流程都会有一个多步骤进度条,很直观的显示用户每一步的操作状态,像淘宝的购物流程
 
其实现方法其实很简单,只需要把每一步分隔处的箭头切下来,然后灵活利用background-image和background-color来实现,像这样的多步骤进度条一般有三种状态:

已经完成的状态(done)
当前正在进行的状态(current)
未完成的状态(default)

我们可以针对这三种状态给HTML结构标签加不同的类来定义样式

下面整理了两个demo

Demo 1:纯色块式
定义结构代码:

复制代码代码如下:
<div class="flow_steps">
<ul>
<li class="done">第一步</li>
<li class="current_prev">第二步</li>
<li class="current">第三步</li>
<li>第四步</li>
<li class="last">第五步</li>
</ul>
</div>

定义样式:

复制代码代码如下:
.flow_steps ul li { float:left; height:23px; padding:0 40px 0 30px; line-height:23px; text-align:center; background:url(../images/barbg.png) no-repeat 100% 0 #E4E4E4; font-weight:bold;}
.flow_steps ul li.done { background-position:100% -46px; background-color:#FFEDA2;}
.flow_steps ul li.current_prev { background-position:100% -23px; background-color:#FFEDA2;}
.flow_steps ul li.current { color:#fff; background-color:#990D1B;}
.flow_steps ul li.last { background-image:none;}

背景切片(barbg.png):需要用PNG图片
 
最终实现效果:
 
Demo 2:带边框式
定义结构代码:

复制代码代码如下:
<div class="steps_bar">
<ul>
<li class="done"><span>STEP 1</span></li>
<li class="current_prev"><span>STEP 2</span></li>
<li class="current"><span>STEP 3</span></li>
<li><span>STEP 4</span></li>
<li class="last"><span>STEP 5</span></li>
</ul>
</div>

定义样式:

复制代码代码如下:
.steps_bar ul { border-left:solid 1px #ccc; overflow:hidden;}
.steps_bar ul li { float:left; height:60px; padding-right:19px; line-height:60px; text-align:center; background:url(../images/stepbar.png) no-repeat 100% 0 #f1f1f1; font-weight:bold;}
.steps_bar ul li span { display:block; height:58px; padding:0 30px; background:##f1f1f1; border-top:solid 1px #ccc; border-bottom:solid 1px #ccc;}
.steps_bar ul li.done { color:#fff; background-position:100% -120px; background-color:#646464;}
.steps_bar ul li.current_prev { color:#fff; background-position:100% -60px; background-color:#646464;}
.steps_bar ul li.done span, .steps_bar ul li.current_prev span { background:#646464;}
.steps_bar ul li.current { color:#fff; background-color:#b70a06;}
.steps_bar ul li.current span { background:#b70a06;}
.steps_bar ul li.last { background-position:100% -180px; background-color:transparent;}
.steps_bar ul li.last span { background:#f1f1f1;}
.steps_bar ul li.last.current { background-position:100% -240px;}
.steps_bar ul li.last.current span { background:#b70a06;}

背景切片(stepbar.png):需要用PNG图片
 
最终实现效果:
 
实际项目中可以通过JavaScript来动态改变li上的class,当前li加class "current",当前li的前一个li加class "current_prev",current_prev以前的所有li加class "done",有一个特殊情况,当当前在第一步时,只需要在第一个li上加class "current"就可以了
回复

使用道具 举报

27

主题

2万

回帖

331

积分

中级会员

Rank: 3Rank: 3

积分
331
发表于 2022-8-8 13:59:19 | 显示全部楼层
我要金豆金豆金豆
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-8-31 17:32:10 | 显示全部楼层
强烈支持楼主ing……
回复 支持 反对

使用道具 举报

7

主题

2万

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
发表于 2023-3-31 09:35:55 | 显示全部楼层
的vgdsvsdvdsvdsvds
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-4-1 13:38:26 | 显示全部楼层
儿童服务绯闻绯闻绯闻
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

87

积分

注册会员

Rank: 2

积分
87
发表于 2023-9-12 14:24:35 | 显示全部楼层
儿童服务绯闻绯闻绯闻
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-9-12 20:33:13 | 显示全部楼层
终于找到了,我擦
回复 支持 反对

使用道具 举报

29

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2024-1-25 20:10:17 | 显示全部楼层
强烈支持楼主ing……
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-3-14 22:14:17 | 显示全部楼层
很不错的源码论坛
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

115

积分

注册会员

Rank: 2

积分
115
发表于 2024-4-27 10:01:00 | 显示全部楼层
额UI废物iuhfujewfiewnnfen
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2025-2-1 06:50 , Processed in 0.181568 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表