html - CSS:如何在 Product Hunt 卡项目上自定义悬停
问题描述
问题
在 Product Hunt 中,将鼠标悬停在卡片上时,它会将颜色更改为深灰色。然后,当您到达评论框时,它会将卡片变回白色,但现在将评论框更改为深灰色(如下图所示)。
当您将鼠标悬停在评论框上时,卡片的其余部分如何恢复正常颜色?
我试过的
作为一个入门级的 CSS 和 Web 开发人员,我最初认为它是 z-index,但事实并非如此。有谁知道如何做到这一点?
在此先感谢,任何帮助表示赞赏
解决方案
假设您的 html 中的每个卡片元素看起来像这样
<div class = "card">
<img src = "avatar.jpg">
<h1> Color Palette generator </h1>
<h3> Generate a random color palette ..... </h3>
<div class = "comment-box">
<icon ....
<span> 13 <span>
</div>
</div>
如果您只想使用 CSS 执行此操作,您可以尝试将元素包含在 div 中,将其相对位置分配给卡片,将绝对位置分配给按钮,如果添加 Z 索引。
.card {
position : relative
}
.comment-box {
position : absolute;
top : any;
left : any;
z-index 99:
}
.comment-box:hover {
backgroud : gray;
}
你也可以尝试javascript事件。您可以创建一个事件以根据用户交互将焦点类分配给元素。
在你的样式表中你做这样的事情
.focus {
background: gray;
}
并在你的 js 文件中做这样的事情
let card = document.querySelector('.card')
let c-box = document.querySelector('.comment-box')
card.addEventListener ('mouseover', function () {
this.classList.add('focus')
})
c-box.addEventListener('mouseover', function(){
card.classList.remove('focus')
this.classList.add('focus')
})
现在,当您将鼠标悬停在 div 卡上时,焦点类将添加到其中,当您将鼠标悬停在评论 div 上时,该类将从 div 卡中删除并添加到评论框中。
当然可以对其进行改进,您应该使用 querySelectorAll 并使用 FOR 循环遍历每个元素来聚合事件,但我希望我能对您有所帮助
推荐阅读
- spring-boot - 使用 Waffle Spring boot + Spring Security 和嵌入式 tomcat 获取 Angular
- java - Vertx 4 在调用 sockjs 处理程序时不会阻塞
- c# - 如何使用 ffmpeg 的 xfade 过渡过滤器通过 cshrp 将多个视频文件连接到单个文件?
- java - 生成的excel文件没有扩展名
- arrays - 在 PowerShell 中搜索多个文件中的多个字符串
- prolog - 带约束的 PROLOG 练习
- r - 具有 MA(1) 结构的 sarima 函数,用于残差和外部回归器
- python - Django3.2.6:TypeError:“NoneType”对象不可调用
- c - 代码需要解释。有人可以解释为什么代码的输出是-32吗?
- python - auto-py-to-exe .py 文件有效,但 .exe 弹出一堆错误