使用css实现时间轴

本文将使用css来实现一个左右交叉布局的时间轴,效果如下:

使用的都是一些常用的css,代码如下:

<!DOCTYPE>
<html>
<head>
    <title>vue demo</title>
    <script src="js/jquery-3.2.1.js"></script>
    <style>
        .lv-time-section{
            font-size:0;
            width:100%;
        }
        .lv-time-left, .lv-time-right{
            display:inline-block;
            width:calc(50% - 1px);
            height:100px;
        }
        
        .lv-time-left{
            border-right:2px solid #949494;
        }
        
        .lv-time-time, .lv-time-container{
            font-size:16px;
        }
        
        .lv-time-container{
            background-color:#949494;
            border-radius:5px;
        }
        .lv-time-content{
            padding:5px;
        }
        
        .lv-time-left .lv-time-container, 
        .lv-time-left .lv-time-time,
        .lv-time-left .lv-time-container .lv-time-content{
            float:right;
        }
        
        .lv-time-right .lv-time-container, 
        .lv-time-right .lv-time-time,
        .lv-time-right .lv-time-container .lv-time-content{
            float:left;
        }
        
        .lv-time-left .lv-time-time:after{
            content:"";
            display:inline-block;
            height:10px;
            width:10px;
            border-radius:5px;
            background-color:#949494;
            margin-right:-6px;
        }
        
        .lv-time-right .lv-time-time:before{
            content:"";
            display:inline-block;
            height:10px;
            width:10px;
            border-radius:5px;
            background-color:#949494;
            margin-left:-6px;
        }
        
        .lv-time-container{
            border:1px solid #949494;
        }
        
        .lv-time-left .lv-time-container{
            margin-right:15px;
            text-align:right;
        }
        
        .lv-time-right .lv-time-container{
            float:left;
            margin-left:15px;
            padding-right:10px;
            text-align:left;
            
        }
        
        .lv-time-left .lv-time-container:after{
            content:"";
            display:block;
            float:right;
            border-top:5px solid transparent;
            border-left:10px solid #949494;
            border-bottom:5px solid transparent;
            margin-right:-100%;
            margin-top:5px;
        }
        
        .lv-time-right .lv-time-container:before{
            content:"";
            display:block;
            float:left;
            border-top:5px solid transparent;
            border-right:10px solid #949494;
            border-bottom:5px solid transparent;
            margin-left:-11px;
            margin-top:5px;
        }
        
    </style>
</head>
<body>
    <div class="lv-time-section">
        <div class="lv-time-left">
            <div class="lv-time-time">
            2018-05-13
            </div>
        </div>
        <div class="lv-time-right">
            <div class="lv-time-container">
                <div class="lv-time-content">
                    开篇-springboot环境搭建
                </div>
            </div>
        </div>
    </div>
    <div class="lv-time-section">
        <div class="lv-time-left">
            <div class="lv-time-container">
                <div class="lv-time-content">
                    引入springmvc
                </div>
            </div>
        </div>
        <div class="lv-time-right">
            <div class="lv-time-time">
            2018-05-14
            </div>
        </div>
    </div>
    <div class="lv-time-section">
        <div class="lv-time-left">
            <div class="lv-time-time">
            2018-05-15
            </div>
        </div>
        <div class="lv-time-right">
            <div class="lv-time-container">
                <div class="lv-time-content">
                    添加多个控制器
                </div>
            </div>
        </div>
    </div>
    <div class="lv-time-section">
        <div class="lv-time-left">
            <div class="lv-time-container">
                <div class="lv-time-content">
                    添加后台管理页面
                </div>
            </div>
        </div>
        <div class="lv-time-right">
            <div class="lv-time-time">
            2018-05-16
            </div>
        </div>
    </div>
    <div class="lv-time-section">
        <div class="lv-time-left">
            <div class="lv-time-time">
            2018-05-17
            </div>
        </div>
        <div class="lv-time-right">
            <div class="lv-time-container">
                <div class="lv-time-content">
                    添加权限管理模块
                </div>
            </div>
        </div>
    </div>
    <div class="lv-time-section">
        <div class="lv-time-left">
            <div class="lv-time-container">
                <div class="lv-time-content">
                    使用ueditor添加文章
                </div>
            </div>
        </div>
        <div class="lv-time-right">
            <div class="lv-time-time">
            2018-05-18
            </div>
        </div>
    </div>
    <div class="lv-time-section">
        <div class="lv-time-left">
            <div class="lv-time-time">
            2018-05-19
            </div>
        </div>
        <div class="lv-time-right">
            <div class="lv-time-container">
                <div class="lv-time-content">
                    前端文章分页功能实现
                </div>
            </div>
        </div>
    </div>
    <div class="lv-time-section">
        <div class="lv-time-left">
            <div class="lv-time-container">
                <div class="lv-time-content">
                    将博客部署到tomcat上
                </div>
            </div>
        </div>
        <div class="lv-time-right">
            <div class="lv-time-time">
            2018-05-20
            </div>
        </div>
    </div>
</body>
</html>

实现上是这样考虑的,时间轴的每一小节都是一个独立的节点,这样每个小结就对应一个lv-time-section节点,而为了实现左右交叉布局,所以这儿定义了一个lv-time-left和lv-time-right,这样将时间和内容分别交叉放入各自的left和right div中,也就达到了交叉的效果。而中间的时间线则是通过给lv-time-left添加有边框来实现的;圆点是通过给lv-time-time添加after和before伪类来实现的,然后通过lv-time-time在那个div下面设置圆点的位置即可。而lv-time-content的尖号也是通过这种方式实现的。

这样的展示效果显得有层次感,我这儿是为了展示文章列表的,所以在结合下拉刷新的功能的话,相比于分页会更有用户体验效果。希望本文对你有所帮助。

猜你喜欢

转载自www.cnblogs.com/lvniao/p/9101786.html