css实现箭头进度条

实现的目标:

f4307b32fedf6ead058440f7f3f99ca6ede.jpg

废话不多少,代码跟上~

首先写出一个基本的样式

<div class="progress-bar" style="margin: 20px;">
    <li>
        <span>买家下单</span>
    </li>
    <li>
        <span>买家付款</span>
    </li>
    <li>
        <span>发货</span>
    </li>
    <li>
        <span>买家确认收货</span>
    </li>
</div>
.progress-bar li {
    padding: 0px 20px;
    line-height: 40px;
    background: #50abe4;
    display: inline-block;
    color: #fff;
    position: relative;
    width: 180px;
    text-align: center;
}

09e6391d2fa1f07ea694c9c355ce873bb71.jpg

接下来使用 :after 伪类画出一个三角形,定位到右边

.progress-bar li:after {
    content: '';
    display: block;
    border-top: 20px solid red;  
    border-bottom: 20px solid red;  
    border-left: 20px solid blue;  
    position: absolute;
    right: -20px;
    top: 0;  
}

7560aee9add0462153a08181b5e75626164.jpg

然后将after的颜色修改下   

.progress-bar li:after {
    content: '';
    display: block;
    border-top: 20px solid transparent;
    border-bottom: 20px solid transparent;
    border-left: 20px solid #50abe4;
    position: absolute;
    right: -20px;
    top: 0;
    z-index: 10;
}

48ebd5d4d1359a353b27afd0ebf1c56d4ac.jpg

使用 :before 伪类来画出左边的三角形

.progress-bar li:before{  
    content: '';  
    display: block;  
    border-top: 20px solid red;  
    border-bottom: 20px solid red;  
    border-left: 20px solid blue;  
    position: absolute;   
    left: 0px;   
    top: 0;  
} 

f0a6c802e49b3b7524b4b6503767ce62543.jpg

然后将before的颜色修改下

.progress-bar li:before{  
    content: '';
    display: block;
    border-top: 20px solid transparent;
    border-bottom: 20px solid transparent;
    border-left: 20px solid #fff;
    position: absolute;
    left: 0px;
    top: 0;
} 

87f22608a93973e90ae243e3db0d56d0c5c.jpg

整体效果:(注意z-index的设置)

4f36dffdd5b3d4eb294dda90411d126f4b9.jpg

最后把开头和结尾的稍微修饰一下

.progress-bar li {
    padding-left: 25px;
}
.progress-bar li:first-child {
    border-radius: 4px 0 0 4px;
}
.progress-bar li:first-child:before {
    display: none;
}

7c0117bf8d33d9377f48fe4c7cfb7851ac5.jpg

被选中

.progress-bar li.active {
    background-color: #ef72b6;
}
.progress-bar li.active:after {
    border-left-color: #ef72b6;
}

148236ff7d3de6ba9f6e0284896be548043.jpg

完结。

最后 来个整体版本

<div class="progress-bar" style="margin: 20px;">
    <li>
        <span>买家下单</span>
        <div class="bar-date">
            <span>下单时间</span><br/>
            <span>2019-03-12 22:00:01</span>
        </div>
    </li>
    <li class="active">
        <span>买家付款</span>
        <div class="bar-date">
            <span>付款时间</span><br/>
            <span>2019-03-12 22:01:01</span>
        </div>
    </li>
    <li>
        <span>发货</span>
        <div class="bar-date"></div>
    </li>
    <li>
        <span>买家确认收货</span>
        <div class="bar-date"></div>
    </li>
</div>
.progress-bar li {
    padding: 0px 20px;
    line-height: 40px;
    background: #50abe4;
    display: inline-block;
    color: #fff;
    position: relative;
    width: 180px;
    text-align: center;
}
.progress-bar li:after {
    content: '';
    display: block;
    border-top: 20px solid transparent;
    border-bottom: 20px solid transparent;
    border-left: 20px solid #50abe4;
    position: absolute;
    right: -20px;
    top: 0;
    z-index: 10;
}
.progress-bar li:before{  
    content: '';
    display: block;
    border-top: 20px solid transparent;
    border-bottom: 20px solid transparent;
    border-left: 20px solid #fff;
    position: absolute;
    left: 0px;
    top: 0;
}
.progress-bar li {
    padding-left: 25px;
}
.progress-bar li:first-child {
    border-radius: 4px 0 0 4px;
}
.progress-bar li:first-child:before {
    display: none;
}
.progress-bar li.active {
    background-color: #ef72b6;
}
.progress-bar li.active:after {
    border-left-color: #ef72b6;
}
.bar-date {
    position: absolute;
    color: #000;
    font-size: 12px;
    line-height: 20px;
    text-align: center;
}
.bar-date span{
    font-size: 12px;
    color: #999;
}

4cb743a6d5f703f5ec9f2d67f056f56b507.jpg

借鉴地址:https://www.jb51.net/css/529202.html

转载于:https://my.oschina.net/u/3902753/blog/3056547

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值