如何只用css实现点击按钮切换图片

1. 前言

在网页制作中,常常需要使用图片进行页面展示,同时按钮也是常用的元素之一。本文将介绍如何只使用css实现点击按钮切换图片。

2. 准备工作

在本文示例中,我们将使用以下图片文件:

image-1.jpg

image-2.jpg

image-3.jpg

同时,在html文件中我们需要先引入这些图片:

<img src="image-1.jpg" id="image">

上述代码展示了一张id为"image"的图片,我们将在css中对该图片进行切换。

3. 使用:checked实现按钮选中效果

我们需要在html中添加两个radio按钮,用于表示当前选中的图片。将按钮的状态与图片状态绑定是实现切换的关键。我们可以使用:checked选择器来控制按钮状态,样式先不用管,html代码如下:

<input type="radio" name="image" id="image-1" checked>

<label for="image-1">Image 1</label>

<input type="radio" name="image" id="image-2">

<label for="image-2">Image 2</label>

<input type="radio" name="image" id="image-3">

<label for="image-3">Image 3</label>

注意:每个input标签都需要一个唯一的id,同时每个label标签都需要有一个for属性,值为对应的input的id,这样在点击label标签时就可以选中对应的input标签。

4. 使用display:none实现图片切换

接下来,我们需要编写css代码来实现图片的切换。具体思路是通过控制不同的radio按钮选中状态来实现不同的图片展示。示例代码如下:

/* 隐藏除了默认选中的input */

input[type="radio"]:not(:checked) ~ #image {

display: none;

}

/* 控制每个input选中时对应的图片展示 */

#image-1:checked ~ #image {

background-image: url("image-1.jpg");

}

#image-2:checked ~ #image {

background-image: url("image-2.jpg");

}

#image-3:checked ~ #image {

background-image: url("image-3.jpg");

}

/* 设定图片样式 */

#image {

width: 300px;

height: 200px;

background-size: cover;

background-position: center;

}

上述代码做了以下几件事:

隐藏除了默认选中的input对应的图片

控制每个input选中时对应的图片展示

设定图片的样式

注意:将图片的src属性改为background-image,在css中使用background-image属性进行控制。

5. 完整代码

<input type="radio" name="image" id="image-1" checked>

<label for="image-1">Image 1</label>

<input type="radio" name="image" id="image-2">

<label for="image-2">Image 2</label>

<input type="radio" name="image" id="image-3">

<label for="image-3">Image 3</label>

<img src="image-1.jpg" id="image">

/* 隐藏除了默认选中的input */

input[type="radio"]:not(:checked) ~ #image {

display: none;

}

/* 控制每个input选中时对应的图片展示 */

#image-1:checked ~ #image {

background-image: url("image-1.jpg");

}

#image-2:checked ~ #image {

background-image: url("image-2.jpg");

}

#image-3:checked ~ #image {

background-image: url("image-3.jpg");

}

/* 设定图片样式 */

#image {

width: 300px;

height: 200px;

background-size: cover;

background-position: center;

}

6. 总结

本文介绍了如何使用:checked选择器和display:none属性实现点击按钮切换图片的效果。该方法简单易用,效果良好,适用于很多图片切换的场景。希望本文能对大家有所帮助。