纯html和css实现轮播图,不使用javascript
时间: 2024-01-22 22:20:00 浏览: 171
html+css实现轮播图_js_源码
实现纯 HTML 和 CSS 的轮播图可以用到 `input:checked` 和 `label` 标签的特性。以下是一个简单的示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>纯CSS轮播图</title>
<style>
/* 隐藏所有轮播图 */
.carousel-inner > input {
display: none;
}
/* 设置图片宽高和定位 */
.carousel-inner > img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
opacity: 0; /* 设置透明度为0,隐藏图片 */
transition: opacity 1s ease-in-out; /* 设置渐变效果 */
}
/* 显示当前选中的图片 */
.carousel-inner > input:checked + img {
opacity: 1;
}
/* 设置圆点样式 */
.carousel-indicators {
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
display: flex;
justify-content: center;
align-items: center;
}
/* 设置圆点样式 */
.carousel-indicators > label {
width: 10px;
height: 10px;
border-radius: 50%;
background-color: #999;
margin: 0 5px;
cursor: pointer;
transition: background-color 0.5s ease-in-out;
}
/* 设置选中圆点样式 */
.carousel-indicators > input:checked + label {
background-color: #333;
}
/* 隐藏input元素 */
.carousel-indicators > input {
display: none;
}
</style>
</head>
<body>
<div class="carousel-inner">
<input type="radio" id="slide-1" name="slides" checked>
<img src="https://picsum.photos/id/1019/800/400" alt="Slide 1">
<input type="radio" id="slide-2" name="slides">
<img src="https://picsum.photos/id/1020/800/400" alt="Slide 2">
<input type="radio" id="slide-3" name="slides">
<img src="https://picsum.photos/id/1021/800/400" alt="Slide 3">
<div class="carousel-indicators">
<input type="radio" id="slide-1-input" name="slide-indicators" checked>
<label for="slide-1-input"></label>
<input type="radio" id="slide-2-input" name="slide-indicators">
<label for="slide-2-input"></label>
<input type="radio" id="slide-3-input" name="slide-indicators">
<label for="slide-3-input"></label>
</div>
</div>
</body>
</html>
```
在这个示例中,轮播图中有3张图片,每张图片都有一个对应的 input 元素,并且这些 input 元素都有相同的 `name` 属性,以便它们可以被分组,只有一个 input 被选中。圆点也是用类似的方式实现的:每个圆点都是一个 `label` 元素,它用于选择相应的 input 元素。 当 `input:checked` 时,当前图片的 `opacity` 属性被设置为 `1`,这样就可以显示当前选中的图片。 同样,当 `input:checked` 时,当前圆点的 `background-color` 属性被设置为 `#333`,这样就可以显示当前选中状态的圆点。
阅读全文