这是一款创意多彩CSS3垂直时间轴特效。该CSS3垂直时间轴通过CSS伪元素和css transform属性,制作椭圆形和箭头,并配以多彩的颜色,构建出漂亮的垂直时间轴效果。
使用方法
在页面中引入bootstrap.min.css文件。
<link rel="stylesheet" href="bootstrap.min.css" type="text/css">
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="year">2018</span> <div class="inner-content"> <h3 class="title">Web Designer</h3> <p class="description"> Lorem ipsum dolor sit amet... </p> </div> </a> </div> <div class="timeline"> <a href="#" class="timeline-content"> <span class="year">2017</span> <div class="inner-content"> <h3 class="title">Web Developer</h3> <p class="description"> Lorem ipsum dolor sit amet... </p> </div> </a> </div> </div> </div> </div> </div>
CSS样式
然后为该CSS3垂直时间轴添加下面的CSS样式,对其进行效果的美化。
.main-timeline{ overflow: hidden; position: relative; } .main-timeline:before{ content: ""; width: 7px; height: 100%; background: #909090; position: absolute; top: 0; left: 50%; transform: translateX(-50%); } .main-timeline .timeline{ width: 50%; padding-left: 50px; float: right; position: relative; } .main-timeline .timeline:before{ content: ""; width: 30px; height: 30px; border-radius: 50%; background: #909090; border: 7px solid #fff; position: absolute; top: 50%; left: -15px; transform: translateY(-50%); } .main-timeline .timeline:after{ content: ""; display: block; border-right: 30px solid #ee4423; border-top: 20px solid transparent; border-bottom: 20px solid transparent; position: absolute; top: 50%; left: 24px; transform: translateY(-50%); } .main-timeline .timeline-content{ display: block; padding: 25px; border-radius: 100px; background: #ee4423; position: relative; } .main-timeline .timeline-content:before, .main-timeline .timeline-content:after{ content: ""; display: block; width: 100%; clear: both; } .main-timeline .timeline-content:hover{ text-decoration: none; } .main-timeline .inner-content{ width: 70%; float: right; padding: 15px 20px 15px 15px; background: #fff; border-radius: 0 100px 100px 0; color: #ee4423; } .main-timeline .year{ display: inline-block; font-size: 50px; font-weight: 600; color: #fff; position: absolute; top: 50%; left: 7%; transform: translateY(-50%); } .main-timeline .title{ font-size: 24px; font-weight: 600; text-transform: uppercase; margin: 0 0 5px 0; } .main-timeline .description{ font-size: 14px; margin: 0 0 5px 0; } .main-timeline .timeline:nth-child(2n){ padding: 0 50px 0 0; } .main-timeline .timeline:nth-child(2n):before, .main-timeline .timeline:nth-child(2n) .year{ left: auto; right: -15px; } .main-timeline .timeline:nth-child(2n) .year{ right: 7%; } .main-timeline .timeline:nth-child(2n):after{ border-right: none; border-left: 30px solid #ee4423; left: auto; right: 24px; } .main-timeline .timeline:nth-child(2n) .inner-content{ float: none; border-radius: 100px 0 0 100px; text-align: right; } .main-timeline .timeline:nth-child(2){ margin-top: 130px; } .main-timeline .timeline:nth-child(odd){ margin: -130px 0 0 0; } .main-timeline .timeline:nth-child(even){ margin-bottom: 80px; } .main-timeline .timeline:first-child, .main-timeline .timeline:last-child:nth-child(even){ margin: 0; } .main-timeline .timeline:nth-child(2n) .timeline-content{ background: #f68829; } .main-timeline .timeline:nth-child(2n), .main-timeline .timeline:nth-child(2n) .inner-content{ color: #f68829; } .main-timeline .timeline:nth-child(2n):after{ border-left-color: #f68829; } .main-timeline .timeline:nth-child(3n) .timeline-content{ background: #2991d0; } .main-timeline .timeline:nth-child(3n), .main-timeline .timeline:nth-child(3n) .inner-content{ color: #2991d0; } .main-timeline .timeline:nth-child(3n):after{ border-right-color: #2991d0; } .main-timeline .timeline:nth-child(4n) .timeline-content{ background: #9361aa; } .main-timeline .timeline:nth-child(4n), .main-timeline .timeline:nth-child(4n) .inner-content{ color: #9361aa; } .main-timeline .timeline:nth-child(4n):after{ border-left-color: #9361aa; } .main-timeline .timeline:nth-child(5n) .timeline-content{ background: #a7be26; } .main-timeline .timeline:nth-child(5n), .main-timeline .timeline:nth-child(5n) .inner-content{ color: #a7be26; } .main-timeline .timeline:nth-child(5n):after{ border-right-color: #a7be26; } @media only screen and (max-width: 1200px){ .main-timeline .inner-content{ width: 80%; } .main-timeline .year{ font-size: 45px; left: 10px; transform: translateY(-50%) rotate(-90deg); } .main-timeline .timeline:nth-child(2n) .year{ right: 10px; } } @media only screen and (max-width: 990px){ .main-timeline .year{ font-size: 40px; left: 0; } .main-timeline .timeline:nth-child(2n) .year{ right: 0; } } @media only screen and (max-width: 767px){ .main-timeline:before, .main-timeline .timeline:before{ left: 10px; transform: translateX(0); } .main-timeline .timeline:nth-child(2n):after{ border-left: none; border-right: 30px solid #ee4423; right: auto; left: 24px; } .main-timeline .timeline, .main-timeline .timeline:nth-child(even), .main-timeline .timeline:nth-child(odd){ width: 100%; float: none; margin: 0 0 30px 0; } .main-timeline .timeline:last-child{ margin-bottom: 0; } .main-timeline .timeline:nth-child(2n){ padding: 0 0 0 50px; } .main-timeline .timeline:before, .main-timeline .timeline:nth-child(2n):before{ left: -2px; } .main-timeline .inner-content{ width: 85%; } .main-timeline .timeline:nth-child(2n) .inner-content{ float: right; border-radius: 0 100px 100px 0; text-align: left; } .main-timeline .timeline:nth-child(2n) .year{ right: auto; left: 0; } .main-timeline .timeline:nth-child(2n):after{ border-right-color: #f68829; } .main-timeline .timeline:nth-child(3n):after{ border-left-color: #2991d0; } .main-timeline .timeline:nth-child(4n):after{ border-right-color: #9361aa; } .main-timeline .timeline:nth-child(5n):after{ border-left-color: #a7be26; } } @media only screen and (max-width: 479px){ .main-timeline .timeline-content{ padding: 15px; } .main-timeline .inner-content{ width: 80%; } .main-timeline .year{ font-size: 30px; } }