多步骤进度条的实现方法

很多分步骤的流程都会有一个多步骤进度条,很直观的显示用户每一步的操作状态,像淘宝的购物流程


其实现方法其实很简单,只需要把每一步分隔处的箭头切下来,然后灵活利用background-image和background-color来实现,像这样的多步骤进度条一般有三种状态:

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

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

下面整理了两个demo

Demo 1:纯色块式

定义结构代码:

[html]  view plain copy
  1. <div class="flow_steps">  
  2.     <ul>  
  3.         <li class="done">第一步</li>  
  4.         <li class="current_prev">第二步</li>  
  5.         <li class="current">第三步</li>  
  6.         <li>第四步</li>  
  7.         <li class="last">第五步</li>  
  8.     </ul>  
  9. </div>  

定义样式:

[css]  view plain copy
  1. .flow_steps ul li { float:leftheight:23pxpadding:0 40px 0 30pxline-height:23pxtext-align:centerbackground:url(../images/barbg.png) no-repeat 100% 0 #E4E4E4font-weight:bold;}  
  2. .flow_steps ul li.done { background-position:100% -46pxbackground-color:#FFEDA2;}  
  3. .flow_steps ul li.current_prev { background-position:100% -23pxbackground-color:#FFEDA2;}  
  4. .flow_steps ul li.current { color:#fffbackground-color:#990D1B;}  
  5. .flow_steps ul li.last { background-image:none;}  

背景切片(barbg.png):需要用PNG图片


最终实现效果:

demo1


Demo 2:带边框式

定义结构代码:

[html]  view plain copy
  1. <div class="steps_bar">  
  2.     <ul>  
  3.         <li class="done"><span>STEP 1</span></li>  
  4.         <li class="current_prev"><span>STEP 2</span></li>  
  5.         <li class="current"><span>STEP 3</span></li>  
  6.         <li><span>STEP 4</span></li>  
  7.         <li class="last"><span>STEP 5</span></li>  
  8.     </ul>  
  9. </div>  

定义样式:

[css]  view plain copy
  1. .steps_bar ul { border-left:solid 1px #cccoverflow:hidden;}  
  2. .steps_bar ul li { float:leftheight:60pxpadding-right:19pxline-height:60pxtext-align:centerbackground:url(../images/stepbar.png) no-repeat 100% 0 #f1f1f1font-weight:bold;}  
  3. .steps_bar ul li span { display:blockheight:58pxpadding:0 30pxbackground:##f1f1f1border-top:solid 1px #cccborder-bottom:solid 1px #ccc;}  
  4. .steps_bar ul li.done { color:#fffbackground-position:100% -120pxbackground-color:#646464;}  
  5. .steps_bar ul li.current_prev { color:#fffbackground-position:100% -60pxbackground-color:#646464;}  
  6. .steps_bar ul li.done span, .steps_bar ul li.current_prev span { background:#646464;}  
  7. .steps_bar ul li.current { color:#fffbackground-color:#b70a06;}  
  8. .steps_bar ul li.current span { background:#b70a06;}  
  9. .steps_bar ul li.last { background-position:100% -180pxbackground-color:transparent;}  
  10. .steps_bar ul li.last span { background:#f1f1f1;}  
  11. .steps_bar ul li.last.current { background-position:100% -240px;}  
  12. .steps_bar ul li.last.current span { background:#b70a06;}  

背景切片(stepbar.png):需要用PNG图片


最终实现效果:

demo2


实际项目中可以通过JavaScript来动态改变li上的class,当前li加class "current",当前li的前一个li加class "current_prev",current_prev以前的所有li加class "done",有一个特殊情况,当当前在第一步时,只需要在第一个li上加class "current"就可以了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值