这是一款css3跑道式时间轴设计效果。该时间轴以弯曲的跑道作为时间轴的路线,以不同的颜色来区分时间点,采用响应式设计,效果非常酷。
使用方法
HTML
该css3跑道式时间轴设计的基本HTML结构如下。
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="main-timeline">
<div class="timeline">
<a href="#" class="timeline-content">
<span class="timeline-year">2018</span>
<div class="timeline-icon">
<i class="fa fa-rocket"></i>
</div>
<div class="content">
<h3 class="title">Web Development</h3>
<p class="description">
Lorem ipsum dolor sit amet, ......
</p>
</div>
</a>
</div>
<div class="timeline">
<a href="#" class="timeline-content">
<span class="timeline-year">2017</span>
<div class="timeline-icon">
<i class="fa fa-users"></i>
</div>
<div class="content">
<h3 class="title">Java Script</h3>
<p class="description">
Lorem ipsum dolor sit amet, ......
</p>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
CSS样式
然后为该时间轴添加下面的CSS样式。
.main-timeline{
font-family: 'Roboto', sans-serif;
padding: 20px 0;
position: relative;
}
.main-timeline:before,
.main-timeline:after{
content: '';
height: 40px;
width: 40px;
background-color: #e7e7e7;
border-radius: 50%;
border: 10px solid #303334;
transform:translateX(-50%);
position: absolute;
left: 50%;
top: -15px;
z-index: 2;
}
.main-timeline:after{
top: auto;
bottom:15px;
}
.main-timeline .timeline{
padding: 35px 0;
margin-top: -30px;
position: relative;
z-index: 1;
}
.main-timeline .timeline:before,
.main-timeline .timeline:after{
content: '';
height: 100%;
width: 50%;
border-radius: 100px 0 0 100px;
border: 15px solid #46B2BC;
border-right: none;
position: absolute;
left: 0;
top: 0;
z-index: -1;
}
.main-timeline .timeline:after{
height: calc(100% - 30px);
width: calc(50% - 12px);
border-color: #65C7D0;
left: 12px;
top: 15px;
}
.main-timeline .timeline-content{ display:inline-block; }
.main-timeline .timeline-content:hover{ text-decoration: none; }
.main-timeline .timeline-year{
color: #65C7D0;
font-size: 50px;
font-weight: 600;
display: inline-block;
transform:translateY(-50%);
position: absolute;
top: 50%;
left: 10%;
}
.main-timeline .timeline-icon{
color: #65C7D0;
font-size: 80px;
display: inline-block;
transform: translateY(-50%);
position: absolute;
left: 34%;
top: 50%;
}
.main-timeline .content{
color: #909090;
width: 50%;
padding: 20px;
display: inline-block;
float: right;
}
.main-timeline .title{
color: #65C7D0;
font-size: 22px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
margin: 0 0 5px 0;
}
.main-timeline .description{
font-size: 15px;
letter-spacing: 1px;
margin: 0;
}
.main-timeline .timeline:nth-child(even):before{
left: auto;
right: 0;
border-radius: 0 100px 100px 0;
border: 15px solid red;
border-left: none;
}
.main-timeline .timeline:nth-child(even):after{
left: auto;
right: 12px;
border: 15px solid green;
border-left: none;
border-radius: 0 100px 100px 0;
}
.main-timeline .timeline:nth-child(even) .content{ float: left; }
.main-timeline .timeline:nth-child(even) .timeline-year{
left: auto;
right: 10%;
}
.main-timeline .timeline:nth-child(even) .timeline-icon{
left: auto;
right: 32%;
}
.main-timeline .timeline:nth-child(5n+2):before{ border-color: #EA3C14; }
.main-timeline .timeline:nth-child(5n+2):after{ border-color: #EF5720; }
.main-timeline .timeline:nth-child(5n+2) .timeline-icon{ color: #EA3C14; }
.main-timeline .timeline:nth-child(5n+2) .timeline-year{ color: #EA3C14; }
.main-timeline .timeline:nth-child(5n+2) .title{ color: #EA3C14; }
.main-timeline .timeline:nth-child(5n+3):before{ border-color: #8CC63E; }
.main-timeline .timeline:nth-child(5n+3):after{ border-color: #6CAF29; }
.main-timeline .timeline:nth-child(5n+3) .timeline-icon{ color: #8CC63E; }
.main-timeline .timeline:nth-child(5n+3) .timeline-year{ color: #8CC63E; }
.main-timeline .timeline:nth-child(5n+3) .title{ color: #8CC63E; }
.main-timeline .timeline:nth-child(5n+4):before{ border-color: #F99324; }
.main-timeline .timeline:nth-child(5n+4):after{ border-color: #FBB03B; }
.main-timeline .timeline:nth-child(5n+4) .timeline-icon{ color: #F99324; }
.main-timeline .timeline:nth-child(5n+4) .timeline-year{ color: #F99324; }
.main-timeline .timeline:nth-child(5n+4) .title{ color: #F99324; }
.main-timeline .timeline:nth-child(5n+5):before{ border-color: #0071BD; }
.main-timeline .timeline:nth-child(5n+5):after{ border-color: #0050A3; }
.main-timeline .timeline:nth-child(5n+5) .timeline-icon{ color: #0071BD; }
.main-timeline .timeline:nth-child(5n+5) .timeline-year{ color: #0071BD; }
.main-timeline .timeline:nth-child(5n+5) .title{ color: #0071BD; }
@media screen and (max-width:1200px){
.main-timeline .timeline:after{ border-radius: 88px 0 0 88px; }
.main-timeline .timeline:nth-child(even):after{ border-radius: 0 88px 88px 0; }
}
@media screen and (max-width:767px){
.main-timeline .timeline{ margin-top: -19px; }
.main-timeline .timeline:before {
border-radius: 50px 0 0 50px;
border-width: 10px;
}
.main-timeline .timeline:after {
height: calc(100% - 18px);
width: calc(50% - 9px);
border-radius: 43px 0 0 43px;
border-width:10px;
top: 9px;
left: 9px;
}
.main-timeline .timeline:nth-child(even):before {
border-radius: 0 50px 50px 0;
border-width: 10px;
}
.main-timeline .timeline:nth-child(even):after {
height: calc(100% - 18px);
width: calc(50% - 9px);
border-radius: 0 43px 43px 0;
border-width: 10px;
top: 9px;
right: 9px;
}
.main-timeline .timeline-icon{ font-size: 60px; }
.main-timeline .timeline-year{ font-size: 40px; }
}
@media screen and (max-width:479px){
.main-timeline .timeline-icon{
font-size: 50px;
transform:translateY(0);
top: 25%;
left: 10%;
}
.main-timeline .timeline-year{
font-size: 25px;
transform:translateY(0);
top: 65%;
left: 9%;
}
.main-timeline .content{
width: 68%;
padding: 10px;
}
.main-timeline .title{ font-size: 18px; }
.main-timeline .timeline:nth-child(even) .timeline-icon{
right: 10%;
}
.main-timeline .timeline:nth-child(even) .timeline-year{
right: 9%;
}
}