介绍
现在的网站大多数都涉及到图片展示和交互效果。在设计网站交互效果的时候,鼠标点击生成图片效果是很常见的。如:当你点击导航栏里面的一个按钮,它会显示一个你想要的效果图,这样的效果不仅可以让网页看起来非常的有条理性,而且还可以为用户设计更好的体验感。其实,这个效果你通过CSS可以非常轻易地实现。
实现思路
我们一般是通过用CSS实现:hover来达到一些悬浮效果,但是通过点击才会展示图片的话,hover就不行了,所以我们需要用到其他CSS属性:checked和target。具体思路是,当我们点击到一个元素的时候,我们使用:checked,它表示当一个复选按钮被勾选后,就会出现某个效果。所以我们在点击的时候同样也使用:checked属性,并且它会匹配相应的URL链接中的ID属性。我们可以使用这个ID属性来设置我们想要展示的图片。而要使得点击后消除这个效果,我们可以通过使用伪类 :target 来解决。
代码实现
这里我举个例子来实现这个效果。首先,HTML部分需要有一个标有图片链接的列表,以及要展示的图片。代码如下:
HTML
<ul>
<li>
<a href="#image1">第一张图片</a>
</li>
<li>
<a href="#image2">第二张图片</a>
</li>
<li>
<a href="#image3">第三张图片</a>
</li>
</ul>
<div class="gallery">
<img src="image1.jpg" id="image1" alt="第一张图片" />
<img src="image2.jpg" id="image2" alt="第二张图片" />
<img src="image3.jpg" id="image3" alt="第三张图片" />
</div>
在HTML代码中调用的图片需要加上ID属性,为作为锚点标识的图片创建一个ID属性很重要,可以在URL中引用它,如:example.com/page#ID。
现在我们需要用CSS来完成我们的图片展示效果,代码如下:
CSS
/* 隐藏所有图片 */
.gallery img {
display: none;
}
/* 当目标点被 :target 选中,则展示图片 */
.gallery :target {
display: block;
}
/* 显示图片的CSS布局 */
.gallery {
display: flex;
justify-content: center;
align-items: center;
height: 80vh;
}
.gallery img {
max-width: 100%;
max-height: 100%;
box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
}
代码的第一个部分隐藏了所有的图片,随后的代码产生了一个:target规则,当图片锚点标识被选中时,展示相应的图片。
最后一个部分是对图片容器的CSS设置。
总结
通过本例我们学会了通过CSS来实现鼠标点击后显示图片效果。我们主要使用了:checked和:target伪类属性。这种效果的好处在于,它保证了用户可以立即看到图片展示,而不必向下滚动页面找到该图片展示。同时,这种方法可以大大减少网页的冗余,提高了网站的效率和页面加载速度。
欢迎大家尝试使用这种新的效果,通过多次项目实战来体验其中的做法和技巧。