css - 在 CSS 中悬停时切换图像
问题描述
我在 CSS 中创建了一个网格(下面的代码中只显示了其中一项)
CSS: /* 网格 1 开始 */
.grid-1 {
display: grid;
grid-template-columns: 33.33% 33.33% 33.33%;
grid-template-rows: auto quto auto;
grid-gap: 4px;
}
/* 网格 1 结束 */
html:
<div class="item-1"><a href="image#1/"><img class="alignleft wp-image-5497 size-full" src="image#1.png" alt="" width="300" height="200" /></a></div>
如果将鼠标悬停在图像#1 上,我需要将图像#1(仅悬停时)替换为图像#2,将代码添加到上面的行中是什么?
任何帮助,将不胜感激。网格中还有其他“项目”,但我只显示了一行代码以保持简单。
解决方案
这并不是一个真正的css-grid问题,因为大多数解决方案都完全独立于布局。
但@Paulie_D 是对的——CSS 不能更改 html 代码。您要么需要页面上已有的图像,要么使用 javascript 交换新图像的 src。或者background-image
在元素上使用属性a
而不是使用img
元素。
但只需将 'on-hover' 添加img
到网格中(立即与 'non-hover' 一起img
)并使用 css 隐藏/取消隐藏可能是最简单、最快的解决方案:
<a href="/">
<img src="https://via.placeholder.com/300x200/b4c833/000000?text=Image+1" class="img1"/>
<img src="https://via.placeholder.com/300x200/000000/b4c833?text=Image+2" class="img2"/>
</a>
<style>
img {
display: block;
}
img + img {
display: none;
}
a:hover img {
display: none;
}
a:hover img + img {
display: block;
}
</style>
我在这里使用广泛的选择器......您可能想要更具体。假设您提供的示例中的代码结构相同,这应该足够了:
.grid-1 img {
display: block;
}
.grid-1 img + img {
display: none;
}
.grid-1 a:hover img {
display: none;
}
.grid-1 a:hover img + img {
display: block;
}
此外,您的问题中还有一个错字,该错字也出现在您的示例代码中:
grid-template-rows: auto quto auto;
应该是grid-template-rows: auto auto auto;
(注意第二个auto)
推荐阅读
- scala - Scala VSCode,金属智能感知无法正常工作
- javascript - 如何允许键盘输入输入类型文件?
- mysql -
排序后如何分组? - authentication - 如何在 cakephp4 中从 Controller 登录用户?使用身份验证插件
- sql - 获取每组的第一行,加上去年的相关行
- javascript - 在新的 AngularFire 7 (Firebase 9) 中实现云函数时出现未知语法错误
- ansible - 如果已创建 VM,Ansible vmware_guest customize_spec 不会更改任何内容
- python - 如何使具有多个答案的问题/答案成为可能
- python-3.x - Spacy 在 Pardo 中中断序列化 - Apache Beam
- powershell - 提示时如何将参数作为输入传递给powershell脚本?