html - 带有鼠标悬停效果的网格库上的文本
问题描述
我想为每个图像制作一个带有鼠标悬停文本效果的网格 3x3 画廊。(仅适用于 HTML 和 CSS)但它不适用于每个图像,它适用于整个网格部分。我不知道为什么。文字应出现在每张图片上。请帮我解决一下这个。谢谢!
HTML
<section>
<div class="favorite" id="favorite">
<div class="favorite-item" id="favorite-item">
<div class="grid1" id="grid1">
<img src="fav01.jpeg" alt="favorite img">
<div class="imgtext">
<div class="text-1"> Activity </div>
</div></img>
<img src="fav02.jpeg" alt="favorite img">
<div class="imgtext">
<div class="text-1"> Snowboarding </div>
</div></img>
<img src="fav03.jpeg" alt="favorite img">
<div class="imgtext">
<div class="text-1"> Art Museum </div>
</div></img>
</div>
</div>
<div class="favorite-item" id="favorite-item">
<div class="grid2" id="grid2">
<img src="fav04.jpeg" alt="favorite img">
<div class="imgtext">
<div class="text-2"> Halloween party </div>
</div>
<img src="fav05.jpeg" alt="favorite img">
<div class="imgtext">
<div class="text-2"> Wine </div>
</div>
<img src="fav06.jpeg" alt="favorite img">
<div class="imgtext">
<div class="text-2"> Travel </div>
</div>
</div>
</div>
<div class="favorite-item" id="favorite-item">
<div class="grid3" id="grid3">
<img src="fav07.jpeg" alt="favorite img">
<div class="imgtext">
<div class="text-3"> Picnic </div>
</div>
<img src="fav08.jpeg" alt="favorite img">
<div class="imgtext">
<div class="text-3"> Music </div>
</div>
<img src="fav09.jpeg" alt="favorite img">
<div class="imgtext">
<div class="text-1"> Wakeboarding </div>
</div>
</div>
</div>
</div>
</section>
CSS
.favorite {
width: 70%;
margin: auto;
overflow: hidden;
grid-gap: 3px 3px;
}
.favorite-item {
width: 100%;
height: auto;
position: relative;
}
.favorite-item img {
width: 100%;
height: 100%;
object-fit: contain;
}
.text-1{
position: absolute;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
color: white;
font-family: sans-serif;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity 0.5s;
}
.text-1:hover {
opacity: 1;
}
@media (min-width: 640px) {
.favorite {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 3px;
}
.grid1 {
display: block;
row-gap: 3px;
}
.grid2 {
display: block;
row-gap: 3px;
}
.grid3 {
display: block;
row-gap: 3px;
}
解决方案
你不能把另一个放进tag
去<img/>
.favorite {
width: 70%;
margin: auto;
overflow: hidden;
grid-gap: 3px 3px;
}
.favorite-item {
width: 100%;
height: auto;
position: relative;
}
.favorite-item img {
width: 100%;
height: 100%;
object-fit: contain;
}
.img-item{
position:relative;
}
.text-1{
position: absolute;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
color: white;
font-family: sans-serif;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity 0.5s;
}
.text-1:hover {
opacity: 1;
}
[class^="grid"]{
display:flex;
}
@media only screen and (min-width: 640px) {
.favorite {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 3px;
}
.grid1 {
display: block;
row-gap: 3px;
}
.grid2 {
display: block;
row-gap: 3px;
}
.grid3 {
display: block;
row-gap: 3px;
}
<section>
<div class="favorite" id="favorite">
<div class="favorite-item" id="favorite-item">
<div class="grid1" id="grid1">
<div class="img-item">
<img src="https://thumb.cloud.mail.ru/weblink/thumb/xw1/cdoC/d646Tf3gQ/10/10/1010341404/1010341404_450.jpg" alt="favorite img"/>
<div class="imgtext">
<div class="text-1"> Activity </div>
</div>
</div>
<div class="img-item">
<img src="https://thumb.cloud.mail.ru/weblink/thumb/xw1/cdoC/d646Tf3gQ/10/10/1010341404/1010341404_450.jpg" alt="favorite img"/>
<div class="imgtext">
<div class="text-1"> Snowboarding </div>
</div>
</div>
<div class="img-item">
<img src="https://thumb.cloud.mail.ru/weblink/thumb/xw1/cdoC/d646Tf3gQ/10/10/1010341404/1010341404_450.jpg" alt="favorite img" />
<div class="imgtext">
<div class="text-1"> Art Museum </div>
</div>
</div>
</div>
</div>
<div class="favorite-item" id="favorite-item">
<div class="grid2" id="grid2">
<div class="img-item">
<img src="https://thumb.cloud.mail.ru/weblink/thumb/xw1/cdoC/d646Tf3gQ/10/10/1010341404/1010341404_450.jpg" alt="favorite img"/>
<div class="imgtext">
<div class="text-1"> Activity </div>
</div>
</div>
<div class="img-item">
<img src="https://thumb.cloud.mail.ru/weblink/thumb/xw1/cdoC/d646Tf3gQ/10/10/1010341404/1010341404_450.jpg" alt="favorite img"/>
<div class="imgtext">
<div class="text-1"> Snowboarding </div>
</div>
</div>
<div class="img-item">
<img src="https://thumb.cloud.mail.ru/weblink/thumb/xw1/cdoC/d646Tf3gQ/10/10/1010341404/1010341404_450.jpg" alt="favorite img" />
<div class="imgtext">
<div class="text-1"> Art Museum </div>
</div>
</div>
</div>
</div>
<div class="favorite-item" id="favorite-item">
<div class="grid3" id="grid3">
<div class="img-item">
<img src="https://thumb.cloud.mail.ru/weblink/thumb/xw1/cdoC/d646Tf3gQ/10/10/1010341404/1010341404_450.jpg" alt="favorite img"/>
<div class="imgtext">
<div class="text-1"> Activity </div>
</div>
</div>
<div class="img-item">
<img src="https://thumb.cloud.mail.ru/weblink/thumb/xw1/cdoC/d646Tf3gQ/10/10/1010341404/1010341404_450.jpg" alt="favorite img"/>
<div class="imgtext">
<div class="text-1"> Snowboarding </div>
</div>
</div>
<div class="img-item">
<img src="https://thumb.cloud.mail.ru/weblink/thumb/xw1/cdoC/d646Tf3gQ/10/10/1010341404/1010341404_450.jpg" alt="favorite img" />
<div class="imgtext">
<div class="text-1"> Art Museum </div>
</div>
</div>
</div>
</div>
</div>
</section>
推荐阅读
- ios - 如何将 UIBarButtonItem 放在 Swift4 上 NavigationController 的 ViewController 上?
- r - 使用 R 中的年度数据的美国地图 ggplots 的 Gif
- string - 如何在 Python 中多次替换和更新字符串?
- javascript - 如何将事件侦听器添加到循环中的按钮
- shell - 在unix中将最后一列分成两半
- php - 在 apache 中删除 .html 和 .php 的扩展名
- selenium - 点击收音机
- swift - Swift - 设置 APNSToken Firebase 消息的正确方法
- c - 小代码分段错误
- javascript - 用 JS 隐藏下拉菜单