css制作轮播
使用纯CSS制作轮播
通过CSS的@keyframes和animation属性可以实现简单的轮播效果。以下是一个基础示例:
<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>
.slider {
width: 300px;
height: 200px;
overflow: hidden;
}
.slides {
display: flex;
width: 300%;
animation: slide 6s infinite;
}
.slide {
width: 100%;
height: 200px;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
}
@keyframes slide {
0% { transform: translateX(0); }
33% { transform: translateX(-100%); }
66% { transform: translateX(-200%); }
100% { transform: translateX(0); }
}
添加导航指示器
可以通过伪元素和CSS计数器创建导航点:
.slider {
position: relative;
}
.slider::after {
content: '';
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
display: flex;
}
.slider::after {
counter-reset: dot;
}
.slide::before {
counter-increment: dot;
content: counter(dot);
margin: 0 5px;
width: 10px;
height: 10px;
border-radius: 50%;
background: rgba(255,255,255,0.5);
}
响应式轮播调整
使用媒体查询确保轮播在不同设备上正常显示:
@media (max-width: 768px) {
.slider {
width: 100%;
height: 150px;
}
.slide {
height: 150px;
font-size: 18px;
}
}
添加悬停暂停效果
通过动画的animation-play-state属性实现悬停暂停:
.slides {
animation: slide 6s infinite;
}
.slider:hover .slides {
animation-play-state: paused;
}
使用CSS变量控制参数
通过CSS变量方便调整轮播参数:
:root {
--slide-width: 300px;
--slide-height: 200px;
--animation-duration: 6s;
}
.slider {
width: var(--slide-width);
height: var(--slide-height);
}
.slides {
animation: slide var(--animation-duration) infinite;
}
注意事项
- 纯CSS轮播适合简单场景,复杂交互仍需JavaScript配合
- 确保所有幻灯片尺寸一致
- 动画时间应根据幻灯片数量调整
- 考虑添加适当的过渡效果使切换更平滑
以上方法展示了如何使用纯CSS创建基础轮播效果,可根据实际需求调整样式和动画参数。







