这是一款CSS3超酷响应式垂直时间轴特效。该垂直时间轴特效使用bootstrap网格进行布局,然后通过使用CSS代码来制作各种半圆形和弧线效果。
使用方法
在页面中引入bootstrap.min.css文件。
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" />
HTML结构
该响应式垂直时间轴的基本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="year">2018</span>
<h3 class="title">标题</h3>
<p class="description">
描述文本
</p>
</a>
</div>
<div class="timeline">
<a href="#" class="timeline-content">
<span class="year">2017</span>
<h3 class="title">标题</h3>
<p class="description">
描述文本
</p>
</a>
</div>
</div>
</div>
</di
CSS样式
然后通过下面的CSS样式来实现该垂直时间轴效果。
.main-timeline{
padding-top: 50px;
position: relative;
}
.main-timeline:after{
content: "";
display: block;
clear: both;
}
.main-timeline .timeline{
width: 54.2%;
float: left;
margin-top: -50px;
overflow: hidden;
position: relative;
}
.main-timeline .timeline:last-child{ overflow: visible; }
.main-timeline .timeline:before{
content: "";
width: 95px;
height: 95px;
border-radius: 50%;
background: #fff;
border: 4px solid transparent;
border-top: 4px solid #8c51c7;
border-left: 4px solid #8c51c7;
position: absolute;
top: 0;
right: 0;
transform: rotate(45deg);
}
.main-timeline .timeline:after{
content: "";
width: 65px;
height: 100%;
border-radius: 80px 80px 0 0;
background: #8c51c7;
position: absolute;
top: 15px;
right: 15px;
}
.main-timeline .timeline-content{
display: block;
padding: 0 90px 50px 15px;
position: relative;
}
.main-timeline .timeline-content:hover{ text-decoration: none; }
.main-timeline .year{
display: inline-block;
font-size: 30px;
font-weight: 800;
color: #fff;
position: absolute;
top: 50%;
right: 13px;
z-index: 1;
transform: rotate(90deg) translateX(-50%);
}
.main-timeline .timeline:last-child .year{ top: 60%; }
.main-timeline .title{
padding: 10px 25px;
margin: 0;
font-size: 25px;
font-weight: 800;
color: #8c51c7;
background: linear-gradient(to bottom,transparent,transparent,transparent,transparent,transparent,#8c51c7);
}
.main-timeline .description{
padding: 10px 25px 25px;
border: 4px solid #8c51c7;
border-radius: 0 0 80px 80px;
font-size: 17px;
color: #000;
letter-spacing: 1px;
}
.main-timeline .timeline:nth-child(2n){ float: right; }
.main-timeline .timeline:nth-child(2n):before{
right: auto;
left: 0;
}
.main-timeline .timeline:nth-child(2n):after{
right: auto;
left: 15px;
}
.main-timeline .timeline:nth-child(2n) .timeline-content{ padding: 0 15px 50px 90px; }
.main-timeline .timeline:last-child .timeline-content{ padding-bottom: 20px; }
.main-timeline .timeline:nth-child(2n) .year{
right: auto;
left: 13px;
}
.main-timeline .timeline:nth-child(2n):before{
border-top-color: #faa400;
border-left-color: #faa400;
}
.main-timeline .timeline:nth-child(2n):after{ background: #faa400; }
.main-timeline .timeline:nth-child(2n) .title{
color: #faa400;
background: linear-gradient(to bottom,transparent,transparent,transparent,transparent,transparent,#faa400);
}
.main-timeline .timeline:nth-child(2n) .description{ border-color: #faa400; }
.main-timeline .timeline:nth-child(3n):before{
border-top-color: #e86c44;
border-left-color: #e86c44;
}
.main-timeline .timeline:nth-child(3n):after{ background: #e86c44;}
.main-timeline .timeline:nth-child(3n) .title{
color: #e86c44;
background:linear-gradient(to bottom,transparent,transparent,transparent,transparent,transparent,#e86c44);
}
.main-timeline .timeline:nth-child(3n) .description{ border-color: #e86c44; }
.main-timeline .timeline:nth-child(4n):before{
border-top-color: #45a137;
border-left-color: #45a137;
}
.main-timeline .timeline:nth-child(4n):after{ background: #45a137; }
.main-timeline .timeline:nth-child(4n) .title{
color: #45a137;
background: linear-gradient(to bottom,transparent,transparent,transparent,transparent,transparent,#45a137);
}
.main-timeline .timeline:nth-child(4n) .description{ border-color: #45a137; }
@media only screen and (max-width: 1200px){
.main-timeline .timeline{ width: 55.1%; }
}
@media only screen and (max-width: 990px){
.main-timeline .timeline{ width: 56.5%; }
.main-timeline .title{ font-size: 20px; }
}
@media only screen and (max-width: 767px){
.main-timeline{ padding-top: 0; }
.main-timeline .timeline{
width: 100%;
float: none;
margin: 0 0 -30px 0;
}
.main-timeline .timeline:before{
right: auto;
left: 0;
}
.main-timeline .timeline:after{
right: auto;
left: 15px;
}
.main-timeline .timeline-content{ padding: 0 15px 50px 90px; }
.main-timeline .year{
right: auto;
left: 13px;
}
}
@media only screen and (max-width: 479px){
.main-timeline .title{
padding: 5px 5px 5px 15px;
font-weight: 600;
}
.main-timeline .description{
padding: 5px 20px 20px;
font-size: 14px;
text-align: justify;
}
}