HTML实现时间轴-纯CSS实现响应式竖着/垂直时间线布局效果
时间轴是现代网站设计中非常流行的一种设计元素。在该设计元素中,一系列日期和事件以时间线的形式展示出来。在本文中,我们将讨论如何使用HTML和CSS实现一个响应式、垂直排列的时间轴布局。
HTML代码结构
为了实现时间轴布局,我们需要定义一些HTML元素,如 ul
、li
、p
等。下面是时间轴布局HTML代码结构的一般模板:
<ul class="timeline">
<li>
<div class="timeline-badge">
<i class="fa fa-plus"></i>
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">Event Title One</h4>
<p><small class="text-muted"><i class="fa fa-clock-o"></i> Date</small></p>
</div>
<div class="timeline-body">
<p>Event Description One</p>
</div>
</div>
</li>
<li class="timeline-inverted">
<div class="timeline-badge">
<i class="fa fa-minus"></i>
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">Event Title Two</h4>
<p><small class="text-muted"><i class="fa fa-clock-o"></i> Date</small></p>
</div>
<div class="timeline-body">
<p>Event Description Two</p>
</div>
</div>
</li>
</ul>
在上面的代码中,我们将所有的时间轴事件嵌套在一个 ul
元素中。每个事件都被包含在一个 li
元素中。每个事件都有一个左侧的时间线点 timeline-badge
,一个包含事件细节的区域 timeline-panel
。
CSS样式
现在,让我们开始定义我们的CSS样式,使时间轴布局显得更加美观和易于阅读。下面是直接使用CSS样式实现时间轴布局的示例:
.timeline {
list-style: none;
padding: 20px 0 20px;
position: relative;
}
.timeline:before {
top: 0;
bottom: 0;
position: absolute;
content: " ";
width: 2px;
background-color: #eeeeee;
left: 50%;
margin-left: -1.5px;
}
.timeline > li {
margin-bottom: 20px;
position: relative;
}
.timeline > li:before,
.timeline > li:after {
content: " ";
display: table;
}
.timeline > li:after {
clear: both;
}
.timeline > li .timeline-badge {
color: #fff;
width: 50px;
height: 50px;
line-height: 50px;
font-size: 1.4em;
text-align: center;
position: absolute;
top: 16px;
left: 50%;
margin-left: -25px;
background-color: #999999;
border-radius: 50%;
z-index: 100;
}
.timeline > li.timeline-inverted .timeline-badge {
left: auto;
right: 50%;
margin-right: -25px;
}
.timeline > li.timeline-inverted .timeline-panel {
float: right;
/*改变事件细节内容的位置*/
}
.timeline > li.timeline-inverted .timeline-panel:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}
.timeline > li.timeline-inverted .timeline-panel:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}
.timeline > li .timeline-panel {
width: 46%;
float: left;
/*改变事件细节内容的位置*/
padding: 20px;
border: 1px solid #d4d4d4;
border-radius: 8px;
background-color: #f4f4f4;
position: relative;
-webkit-box-shadow: -1px 1px 6px rgba(0, 0, 0, 0.2);
-moz-box-shadow: -1px 1px 6px rgba(0, 0, 0, 0.2);
box-shadow: -1px 1px 6px rgba(0, 0, 0, 0.2);
}
.timeline > li.timeline-inverted .timeline-panel {
float: right;
/*改变事件细节内容的位置*/
}
.timeline > li.timeline-inverted .timeline-panel:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}
.timeline > li.timeline-inverted .timeline-panel:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}
.timeline > .timeline-heading h4 {
margin-top: 0;
color: inherit;
}
.timeline > .timeline-heading h4 > small {
color: #999999;
}
.timeline > li.timeline-inverted > .timeline-panel:before {
border-right-color: #d4d4d4;
border-right-width: 1px;
border-left-color: transparent;
border-left-width: 0;
}
.timeline > li.timeline-inverted > .timeline-panel:after {
border-right-color: #f4f4f4;
border-right-width: 1px;
border-left-color: transparent;
border-left-width: 0;
}
在上述CSS样式中,我们为时间轴布局定义了一些通用样式,如列表样式、填充、以及时间轴点和事件细节的距离等。我们还定义了一些针对时间轴点和事件细节定制的样式。
响应式设计
现代网站必须是响应式的,能够适应各种尺寸的设备。因此,让我们使用CSS媒体查询添加响应式设计。
@media all and (max-width: 768px) {
.timeline:before {
left: 40px;
}
.timeline > li > .timeline-panel {
width: calc(100% - 90px);
width: -webkit-calc(100% - 90px);
/* Safari */
width: -moz-calc(100% - 90px);
/* Firefox */
}
.timeline > li > .timeline-badge {
left: 15px;
margin-left: 0;
top: 10px;
}
.timeline > li {
margin-bottom: 30px;
}
.timeline > li:last-child {
margin-bottom: 0;
}
.timeline > li.timeline-inverted > .timeline-panel {
float: right;
}
.timeline > li.timeline-inverted > .timeline-panel:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}
.timeline > li.timeline-inverted > .timeline-panel:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}
}
在上述CSS代码中,我们定义了一个媒体查询,它在屏幕宽度小于等于 768px 时生效。在该媒体查询内,我们重新编排了时间轴布局的大小和位置,从而使其适应移动设备的屏幕尺寸。
结语
时间轴是一种很好的展示历史事件和进程的方式。使用HTML和CSS实现时间轴布局可以为现代网站增添非常酷炫的设计元素。本文提供了一个使用HTML和CSS实现时间轴布局的示例模板,并介绍了一些定制时间轴布局的CSS样式和响应式设计。
如果你想要在你的网站中添加时间轴布局,可以试试我们提供的这种实现方式。祝你实现想要的效果!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:html实现时间轴_纯css实现响应式竖着/垂直时间抽布局效果 - Python技术站