时间轴

这是标题

这是内容

标题过长会显示省略号

内容过长会隐藏

更多效果可以自定义

更多效果可以自定义

代码展示

<template>
    <div id="uni_timeline">    
        <div
                :style="uni_space"
                v-for="(item,index) in uni_data"
                :key="index"
                :class="[uni_data.length==index+1?uni_listbox_last:uni_listbox_notlast,uni_listbox]">     
            <p>       
                <img :src="uni_icon" :class="uni_timeline_icon">        
                <span class="uni_timeline_title">{{item.title}}</span>      
            </p>      
        <div class="uni_timeline_content">{{item.content}}</div>    
        </div>  
    </div>
</template>

逻辑部分

data() {    
            return {      
                uni_timeline_icon: "uni_timeline_icon",
                uni_listbox_last: "uni_listbox_last",      
                uni_listbox_notlast: "uni_listbox_notlast",      
                uni_listbox: "uni_listbox"    
            };  
        },  
        computed: {    
            uni_space() {      
                return "height:" + this.space;
            }  
        },  
        props: {    
            uni_data: {      
                type: Array,      
                default(){        
                    return [          
                        {            
                            title: "这是标题",            
                            content: "这是内容"          
                        },          
                        {            
                            title: "标题过长会显示省略号",            
                            content: "内容过长会隐藏"          
                        },          
                        {            
                            title: "更多效果可以自定义",            
                            content: "更多效果可以自定义"          
                        }        
                    ];      
                }    
            },    
            space:{      
                type: String,      
                default: "100px"    
            },    
            uni_icon:{      
                type: String,     
                default: "http://qiniu.iborge.cn/dian.png"    
            }  
        }

css样式

    *{
        margin: 0;
        padding: 0;
    }
    .uni_listbox{
        box-sizing: border-box;
        margin:20px;
        height:60px;
        position:relative;
    }
    .uni_listbox_last{
        height:20px;
    }
    .uni_listbox_notlast{
        height:60px;
        margin-left:18px;
        border-left:3px solid rgb(228,228,228);
    }
    .uni_listbox p{
        position:absolute;
        top:0;
        left:0;
        /* transform: translateY(-50%); */
        margin-left:-9px;
        margin-top:-18px;
        vertical-align:middle;
        height:16px;
        line-height:16px;
    }
    .uni_timeline_icon{
        position:absolute;
        top:0;
        left:0;
        display:inline-block;
        width:16px;
        height:16px;
        vertical-align:middle;
    }
    .uni_timeline_title{
        font-weight:bold;
        text-align:left;
        display:inline-block;
        width:300px;
        margin:0 30px;
        color:rgb(100,100,100);
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .uni_timeline_content{
        text-align:left;
        height:70%;
        padding:10px 21px;
        font-size:14px;
        color:rgb(100,100,100);
        overflow:hidden;
    }