CSS能够实现许多与视觉呈现相关的效果,例如绘制一个24小时的时间轴。时间轴是一个显示事件顺序的线性图,一般由时间标尺和事件节点组成。下面是使用CSS绘制24小时时间轴的方法。
/* 绘制时间轴的CSS代码 */
.timeline {
position: relative;
margin-left: 20px;
}
.timeline::before {
content: '';
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 2px;
margin-left: -1px;
background-color: #ccc;
}
.timeline__point {
position: relative;
margin-bottom: 20px;
}
.timeline__point::before {
content: '';
position: absolute;
top: 0;
left: -10px;
width: 20px;
height: 20px;
border-radius: 50%;
background-color: #fff;
border: 2px solid #ccc;
}
.timeline__point__line {
position: absolute;
top: 10px;
left: -16px;
width: 1px;
height: calc(100% - 10px);
background-color: #ccc;
}
/* 绘制标尺的CSS代码 */
.ruler {
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
margin-left: 20px;
margin-right: 20px;
font-size: 0.7em;
}
.ruler__hour {
flex: auto;
text-align: center;
}
.ruler__hour::before {
content: attr(data-hour);
}

首先,我们需要使用一个HTML包围器,它包含时间轴和标尺。时间轴由一个包含所有事件节点的容器和一个绘制竖直线的伪元素组成。事件节点由一个包含节点图标和连接线的容器和两个绘制连接线的伪元素组成。
接下来,我们需要使用Flexbox布局绘制标尺。标尺由一个包含每个小时的容器和每个小时的元素组成。每个小时的元素显示它自己的时间,并用自己的元素宽度占用剩余空间。这个宽度由Flexbox布局自动计算并分配。
绘制24小时时间轴的方法与此类似,只需更改容器和元素的数量即可。如果需要,你还可以添加其他效果,例如动态的时间节点、活动事件区域等等,以使时间轴更加生动、精彩。