点评:实现方法其实很简单,只需要把每一步分隔处的箭头切下来,然后灵活利用background-image和background-color来实现,接下来针对三种状态给HTML结构标签加不同的类来定义样式
很多分步骤的流程都会有一个多步骤进度条,很直观的显示用户每一步的操作状态,像淘宝的购物流程
s36HTML5中文学习网 - HTML5先行者学习网
s36HTML5中文学习网 - HTML5先行者学习网其实现方法其实很简单,只需要把每一步分隔处的箭头切下来,然后灵活利用background-image和background-color来实现,像这样的多步骤进度条一般有三种状态:
s36HTML5中文学习网 - HTML5先行者学习网s36HTML5中文学习网 - HTML5先行者学习网已经完成的状态(done)
s36HTML5中文学习网 - HTML5先行者学习网当前正在进行的状态(current)
s36HTML5中文学习网 - HTML5先行者学习网未完成的状态(default)
s36HTML5中文学习网 - HTML5先行者学习网s36HTML5中文学习网 - HTML5先行者学习网我们可以针对这三种状态给HTML结构标签加不同的类来定义样式 s36HTML5中文学习网 - HTML5先行者学习网
s36HTML5中文学习网 - HTML5先行者学习网
下面整理了两个demo
s36HTML5中文学习网 - HTML5先行者学习网s36HTML5中文学习网 - HTML5先行者学习网Demo 1:纯色块式 s36HTML5中文学习网 - HTML5先行者学习网定义结构代码:
s36HTML5中文学习网 - HTML5先行者学习网 s36HTML5中文学习网 - HTML5先行者学习网
<div class="flow_steps"> s36HTML5中文学习网 - HTML5先行者学习网
<ul> s36HTML5中文学习网 - HTML5先行者学习网
<li class="done">第一步</li> s36HTML5中文学习网 - HTML5先行者学习网
<li class="current_prev">第二步</li> s36HTML5中文学习网 - HTML5先行者学习网
<li class="current">第三步</li> s36HTML5中文学习网 - HTML5先行者学习网
<li>第四步</li> s36HTML5中文学习网 - HTML5先行者学习网
<li class="last">第五步</li> s36HTML5中文学习网 - HTML5先行者学习网
</ul> s36HTML5中文学习网 - HTML5先行者学习网
</div> s36HTML5中文学习网 - HTML5先行者学习网
s36HTML5中文学习网 - HTML5先行者学习网定义样式:
s36HTML5中文学习网 - HTML5先行者学习网 s36HTML5中文学习网 - HTML5先行者学习网
.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;} s36HTML5中文学习网 - HTML5先行者学习网
.flow_steps ul li.done { background-position:100% -46px; background-color:#FFEDA2;} s36HTML5中文学习网 - HTML5先行者学习网
.flow_steps ul li.current_prev { background-position:100% -23px; background-color:#FFEDA2;} s36HTML5中文学习网 - HTML5先行者学习网
.flow_steps ul li.current { color:#fff; background-color:#990D1B;} s36HTML5中文学习网 - HTML5先行者学习网
.flow_steps ul li.last { background-image:none;} s36HTML5中文学习网 - HTML5先行者学习网
s36HTML5中文学习网 - HTML5先行者学习网背景切片(barbg.png):需要用PNG图片
s36HTML5中文学习网 - HTML5先行者学习网
s36HTML5中文学习网 - HTML5先行者学习网最终实现效果:
s36HTML5中文学习网 - HTML5先行者学习网
s36HTML5中文学习网 - HTML5先行者学习网Demo 2:带边框式 s36HTML5中文学习网 - HTML5先行者学习网定义结构代码:
s36HTML5中文学习网 - HTML5先行者学习网 s36HTML5中文学习网 - HTML5先行者学习网
<div class="steps_bar"> s36HTML5中文学习网 - HTML5先行者学习网
<ul> s36HTML5中文学习网 - HTML5先行者学习网
<li class="done"><span>STEP 1</span></li> s36HTML5中文学习网 - HTML5先行者学习网
<li class="current_prev"><span>STEP 2</span></li> s36HTML5中文学习网 - HTML5先行者学习网
<li class="current"><span>STEP 3</span></li> s36HTML5中文学习网 - HTML5先行者学习网
<li><span>STEP 4</span></li> s36HTML5中文学习网 - HTML5先行者学习网
<li class="last"><span>STEP 5</span></li> s36HTML5中文学习网 - HTML5先行者学习网
</ul> s36HTML5中文学习网 - HTML5先行者学习网
</div> s36HTML5中文学习网 - HTML5先行者学习网
s36HTML5中文学习网 - HTML5先行者学习网定义样式:
s36HTML5中文学习网 - HTML5先行者学习网 s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul { border-left:solid 1px #ccc; overflow:hidden;} s36HTML5中文学习网 - HTML5先行者学习网
.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;} s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul li span { display:block; height:58px; padding:0 30px; background:##f1f1f1; border-top:solid 1px #ccc; border-bottom:solid 1px #ccc;} s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul li.done { color:#fff; background-position:100% -120px; background-color:#646464;} s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul li.current_prev { color:#fff; background-position:100% -60px; background-color:#646464;} s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul li.done span, .steps_bar ul li.current_prev span { background:#646464;} s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul li.current { color:#fff; background-color:#b70a06;} s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul li.current span { background:#b70a06;} s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul li.last { background-position:100% -180px; background-color:transparent;} s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul li.last span { background:#f1f1f1;} s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul li.last.current { background-position:100% -240px;} s36HTML5中文学习网 - HTML5先行者学习网
.steps_bar ul li.last.current span { background:#b70a06;} s36HTML5中文学习网 - HTML5先行者学习网
s36HTML5中文学习网 - HTML5先行者学习网背景切片(stepbar.png):需要用PNG图片
s36HTML5中文学习网 - HTML5先行者学习网
s36HTML5中文学习网 - HTML5先行者学习网最终实现效果:
s36HTML5中文学习网 - HTML5先行者学习网
s36HTML5中文学习网 - HTML5先行者学习网实际项目中可以通过JavaScript来动态改变li上的class,当前li加class "current",当前li的前一个li加class "current_prev",current_prev以前的所有li加class "done",有一个特殊情况,当当前在第一步时,只需要在第一个li上加class "current"就可以了