css制作时间轴
使用 Flexbox 布局制作时间轴
通过 Flexbox 可以快速实现水平或垂直时间轴。以下是一个垂直时间轴的示例代码:
.timeline {
display: flex;
flex-direction: column;
gap: 20px;
}
.timeline-item {
display: flex;
position: relative;
}
.timeline-item::before {
content: "";
position: absolute;
left: 20px;
top: 0;
bottom: 0;
width: 2px;
background: #ccc;
}
.timeline-content {
margin-left: 40px;
padding: 15px;
background: #f5f5f5;
border-radius: 5px;
}
.timeline-dot {
width: 12px;
height: 12px;
background: #4CAF50;
border-radius: 50%;
position: absolute;
left: 15px;
top: 20px;
}
使用 Grid 布局制作时间轴
Grid 布局适合更复杂的时间轴设计:

.timeline {
display: grid;
grid-template-columns: 100px 1fr;
gap: 20px;
}
.timeline-line {
grid-column: 1;
position: relative;
}
.timeline-line::after {
content: "";
position: absolute;
left: 50%;
top: 0;
bottom: 0;
width: 2px;
background: #ccc;
transform: translateX(-50%);
}
.timeline-content {
grid-column: 2;
padding: 15px;
background: #f5f5f5;
border-radius: 5px;
}
.timeline-dot {
width: 12px;
height: 12px;
background: #2196F3;
border-radius: 50%;
position: absolute;
left: 50%;
top: 20px;
transform: translateX(-50%);
}
响应式时间轴设计
添加媒体查询使时间轴在不同设备上表现良好:

@media (max-width: 768px) {
.timeline {
grid-template-columns: 50px 1fr;
}
.timeline-content {
padding: 10px;
}
}
动画效果增强
为时间轴添加悬停和进入动画:
.timeline-item {
transition: transform 0.3s ease;
}
.timeline-item:hover {
transform: translateX(5px);
}
.timeline-dot {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.2); }
100% { transform: scale(1); }
}
时间轴样式变体
创建交替布局的时间轴:
.timeline.alternate .timeline-item:nth-child(odd) .timeline-content {
grid-column: 1;
text-align: right;
}
.timeline.alternate .timeline-item:nth-child(odd) .timeline-line {
grid-column: 2;
}
.timeline.alternate .timeline-line::after {
left: 0;
transform: none;
}
.timeline.alternate .timeline-dot {
left: 0;
transform: none;
}
这些方法提供了创建CSS时间轴的不同途径,可以根据项目需求选择最适合的实现方式。Flexbox适合简单布局,Grid适合更复杂的排列,而响应式设计和动画可以提升用户体验。






