html中图片九宫格,点击图片后在图片上显示文字
时间: 2023-09-28 16:12:02 浏览: 115
可以使用HTML和CSS实现图片九宫格,并使用JavaScript来实现点击图片后在图片上显示文字的效果。以下是一个简单的实现方案:
HTML代码:
```
<div class="grid-container">
<div class="grid-item">
<img src="image1.jpg" data-text="这是图片1的描述">
</div>
<div class="grid-item">
<img src="image2.jpg" data-text="这是图片2的描述">
</div>
<div class="grid-item">
<img src="image3.jpg" data-text="这是图片3的描述">
</div>
<div class="grid-item">
<img src="image4.jpg" data-text="这是图片4的描述">
</div>
<div class="grid-item">
<img src="image5.jpg" data-text="这是图片5的描述">
</div>
<div class="grid-item">
<img src="image6.jpg" data-text="这是图片6的描述">
</div>
<div class="grid-item">
<img src="image7.jpg" data-text="这是图片7的描述">
</div>
<div class="grid-item">
<img src="image8.jpg" data-text="这是图片8的描述">
</div>
<div class="grid-item">
<img src="image9.jpg" data-text="这是图片9的描述">
</div>
</div>
```
CSS代码:
```
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.grid-item {
position: relative;
}
.grid-item img {
display: block;
width: 100%;
height: auto;
}
.grid-item:before {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.8);
color: #fff;
font-size: 18px;
padding: 10px;
opacity: 0;
transition: opacity 0.3s ease;
}
.grid-item:hover:before {
opacity: 1;
}
```
JavaScript代码:
```
// 通过data-text属性获取图片描述
const images = document.querySelectorAll('.grid-item img');
images.forEach(img => {
img.addEventListener('click', () => {
const text = img.getAttribute('data-text');
img.parentNode.querySelector(':before').textContent = text;
});
});
```
这样,当鼠标悬停在图片上时,会在图片上显示对应的描述。点击图片时,会在图片上显示描述,再次点击则会隐藏描述。
阅读全文