css制作轮播教程
CSS制作轮播教程
使用纯CSS实现基础轮播
HTML结构

<div class="slider">
<div class="slides">
<div class="slide">Slide 1</div>
<div class="slide">Slide 2</div>
<div class="slide">Slide 3</div>
</div>
</div>
CSS动画关键代码

.slider {
width: 300px;
height: 200px;
overflow: hidden;
}
.slides {
display: flex;
width: 300%;
animation: slide 10s infinite;
}
.slide {
width: 100%;
flex-shrink: 0;
}
@keyframes slide {
0% { transform: translateX(0); }
33% { transform: translateX(-100%); }
66% { transform: translateX(-200%); }
100% { transform: translateX(0); }
}
添加导航指示点
HTML添加导航
<div class="dots">
<span class="dot" onclick="currentSlide(1)"></span>
<span class="dot" onclick="currentSlide(2)"></span>
<span class="dot" onclick="currentSlide(3)"></span>
</div>
CSS样式
.dots {
text-align: center;
margin-top: 10px;
}
.dot {
display: inline-block;
width: 12px;
height: 12px;
margin: 0 5px;
border-radius: 50%;
background-color: #bbb;
cursor: pointer;
}
.dot.active {
background-color: #717171;
}
响应式设计调整
@media (max-width: 600px) {
.slider {
width: 100%;
height: auto;
aspect-ratio: 16/9;
}
.slides {
animation: slide-mobile 15s infinite;
}
}
@keyframes slide-mobile {
0% { transform: translateX(0); }
33% { transform: translateX(-100%); }
66% { transform: translateX(-200%); }
100% { transform: translateX(0); }
}
悬停暂停效果
.slider:hover .slides {
animation-play-state: paused;
}
过渡效果增强
.slide {
transition: opacity 0.5s ease;
opacity: 0.7;
}
.slide:hover {
opacity: 1;
}
自动高度调整
.slider {
height: auto;
}
.slide {
padding-bottom: 56.25%; /* 16:9比例 */
position: relative;
}
.slide > div {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
注意事项
- 确保父容器设置
overflow: hidden - 动画时间根据内容长度调整
- 幻灯片数量变化时需要重新计算关键帧百分比
- 考虑添加JavaScript后备方案增强兼容性






