html - 如何防止在 CSS 图像过渡期间在网格布局中悬停时调整图像大小
问题描述
我想要一个图像在悬停时转换到另一个图像。我目前有工作代码来执行此操作,除了顶部图像最初会自动重新缩放为更大的尺寸,因此当顶部图像从不透明 1 过渡到 0 时,图像看起来像是“移动”了,因为它是不同的大小比底部图像。我已经确认顶部和底部图像的尺寸相同。
我的代码和问题可以在这里的预览中看到:https ://jsfiddle.net/k3jLxofv/1/
在“Project Area 1”中,我们可以看到最初加载的 2 张图像。即使图像相同(我们可以看到两条线),一张图像也比另一张小。我不知道为什么一张图片比另一张大。我希望能够将鼠标悬停在“项目区域 1”上并进行无缝过渡,这样结果看起来就不会被移动。
“项目区域 2”显示图像应处于两种状态(未悬停和悬停时)的大小。
先感谢您!
.projects-grid-setup {
display: grid;
grid-template-columns: repeat(2, minmax(320px, 1fr));
grid-gap: 0.9rem;
width: 98.3%;
margin: 0 auto;
margin-bottom: 1rem;
}
.projects-tile {
background: black;
}
.projects-tile-picture {
width: 100%;
height: 100%;
object-fit: cover;
}
.crossfade {
position: relative;
}
.crossfade img.fade {
position: absolute;
left: 0;
opacity: 1;
transition: opacity 0.55s ease-in-out;
}
.crossfade img.top:hover {
opacity: 0;
}
<div class="projects-grid-setup">
<!--Project Start-->
<a class="projects-tile" href="google.com" target="_blank">
<div class="crossfade">
<img class="projects-tile-picture top fade" src="https://picsum.photos/300/200?1" />
<img class="projects-tile-picture" src="https://picsum.photos/300/200?1" />
</div>
<p class="projects-tile-title">
Project Area 1
</p>
</a>
</div>
解决方案
如下所述保持高度自动并尝试
.projects-tile-picture {
width: 100%;
height: auto;
object-fit: cover;
}
推荐阅读
- azure - Azure AD SSO 与 ServiceNow 集成不起作用
- r - 了解 glmer 算法;帮助使用 R 进行调试
- javascript - 表单数组上的补丁值未设置材质多选的值
- javascript - 立即截断前导零
- unity3d - 如何在 Unity 中制作两个对象之间的交互动画?
- python - 由于 null,字符串连接不起作用
- r - 日期 %within% 间隔
- automapper - 在 Insert() 上未调用 Dapper Extensions 自定义 ClassMapper
- twitter-bootstrap - 如何使用我的样式自定义引导文档
- reactjs - 反应中的事件处理