下面我将详细讲解如何使用CSS实现鼠标移至图片上显示遮罩层的效果,步骤如下:
下面我将详细讲解如何使用CSS实现鼠标移至图片上显示遮罩层的效果,步骤如下:
步骤一:HTML 结构
首先,我们需要在HTML文件中创建一个
元素并在其中添加一个 元素。如下所示:
步骤二:为
<div class="wrapper">
<img src="https://example.com/image.jpg" alt="Example Image" />
</div>
步骤二:为
添加样式
我们需要将
元素设置为相对定位。
.wrapper {
position: relative;
display: inline-block;
}
接着,我们创建一个
元素作为遮罩层并将其设置为绝对定位。遮罩层应该与 元素的大小相同。然后,我们需要将遮罩层设置为透明,并添加一个背景颜色以用于覆盖图像。我们还需要将其层叠顺序设置为 1,使其在图像上面显示。
.wrapper::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0);
z-index: 1;
transition: background-color 0.5s ease;
}
我们还可以为遮罩层添加文本或图标,以便提示用户单击图像。
.wrapper::before {
content: "点击查看";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #fff;
font-size: 20px;
text-align: center;
background-color: rgba(0, 0, 0, 0.7);
z-index: 1;
transition: background-color 0.5s ease;
}
步骤三:添加鼠标经过效果
当鼠标经过
元素时,我们需要更改遮罩层的透明度,以便其覆盖图像。
.wrapper:hover::before {
background-color: rgba(0, 0, 0, 0.7);
}
如果我们要在遮罩层上显示图像标题,我们可以将其添加到图像下方的
元素中,并在鼠标悬停时显示。
<div class="wrapper">
<img src="https://example.com/image.jpg" alt="Example Image" />
<div class="caption">Example Title</div>
</div>
.caption {
display: none;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 10px;
background-color: #000;
color: #fff;
font-size: 20px;
text-align: center;
z-index: 2;
}
.wrapper:hover .caption {
display: block;
}
这样我们就完成了鼠标移至图片上显示遮罩层效果的实现。
下面是一个完整的示例,你可以在这里查看效果:CSS遮罩层实例1。
另外,如果我们想制作一个图像的缩略图列表并在鼠标经过时显示遮罩层,则可以使用一个类似于下面的示例:
<ul class="images">
<li>
<div class="wrapper">
<img src="https://example.com/image1.jpg" alt="Image 1" />
<div class="caption">Image 1</div>
</div>
</li>
<li>
<div class="wrapper">
<img src="https://example.com/image2.jpg" alt="Image 2" />
<div class="caption">Image 2</div>
</div>
</li>
...
</ul>
.images {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-wrap: wrap;
}
.images li {
margin: 10px;
flex: 1 0 200px;
}
.images .wrapper {
position: relative;
display: block;
width: 100%;
height: 0;
padding-top: 100%;
}
.images img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.images .caption {
display: none;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 10px;
background-color: #000;
color: #fff;
font-size: 16px;
text-align: center;
z-index: 2;
}
.images .wrapper:hover .caption {
display: block;
}
.images .wrapper::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0);
z-index: 1;
transition: background-color 0.5s ease;
}
.images .wrapper:hover::before {
background-color: rgba(0, 0, 0, 0.7);
}
你可以在这里查看效果:CSS遮罩层实例2。
我们需要将
元素设置为相对定位。
.wrapper {
position: relative;
display: inline-block;
}
接着,我们创建一个
元素作为遮罩层并将其设置为绝对定位。遮罩层应该与 元素的大小相同。然后,我们需要将遮罩层设置为透明,并添加一个背景颜色以用于覆盖图像。我们还需要将其层叠顺序设置为 1,使其在图像上面显示。
.wrapper::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0);
z-index: 1;
transition: background-color 0.5s ease;
}
我们还可以为遮罩层添加文本或图标,以便提示用户单击图像。
.wrapper::before {
content: "点击查看";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #fff;
font-size: 20px;
text-align: center;
background-color: rgba(0, 0, 0, 0.7);
z-index: 1;
transition: background-color 0.5s ease;
}
步骤三:添加鼠标经过效果
当鼠标经过
元素时,我们需要更改遮罩层的透明度,以便其覆盖图像。
.wrapper:hover::before {
background-color: rgba(0, 0, 0, 0.7);
}
如果我们要在遮罩层上显示图像标题,我们可以将其添加到图像下方的
元素中,并在鼠标悬停时显示。
<div class="wrapper">
<img src="https://example.com/image.jpg" alt="Example Image" />
<div class="caption">Example Title</div>
</div>
.caption {
display: none;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 10px;
background-color: #000;
color: #fff;
font-size: 20px;
text-align: center;
z-index: 2;
}
.wrapper:hover .caption {
display: block;
}
这样我们就完成了鼠标移至图片上显示遮罩层效果的实现。
下面是一个完整的示例,你可以在这里查看效果:CSS遮罩层实例1。
另外,如果我们想制作一个图像的缩略图列表并在鼠标经过时显示遮罩层,则可以使用一个类似于下面的示例:
<ul class="images">
<li>
<div class="wrapper">
<img src="https://example.com/image1.jpg" alt="Image 1" />
<div class="caption">Image 1</div>
</div>
</li>
<li>
<div class="wrapper">
<img src="https://example.com/image2.jpg" alt="Image 2" />
<div class="caption">Image 2</div>
</div>
</li>
...
</ul>
.images {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-wrap: wrap;
}
.images li {
margin: 10px;
flex: 1 0 200px;
}
.images .wrapper {
position: relative;
display: block;
width: 100%;
height: 0;
padding-top: 100%;
}
.images img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.images .caption {
display: none;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 10px;
background-color: #000;
color: #fff;
font-size: 16px;
text-align: center;
z-index: 2;
}
.images .wrapper:hover .caption {
display: block;
}
.images .wrapper::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0);
z-index: 1;
transition: background-color 0.5s ease;
}
.images .wrapper:hover::before {
background-color: rgba(0, 0, 0, 0.7);
}
你可以在这里查看效果:CSS遮罩层实例2。
沃梦达教程
本文标题为:CSS实现鼠标移至图片上显示遮罩层效果
基础教程推荐
猜你喜欢
- 7个令人惊讶的JavaScript特性详解 2023-07-09
- 使用JS前端技术实现静态图片局部流动效果 2022-10-21
- ajax三级联动的实现方法 2023-01-31
- CSS让子容器超出父元素(子容器悬浮在父容器效果) 2023-12-22
- C#-Windows Store应用中的HtmlAgilityPack 2023-10-25
- 前端面试题 - HTML 中的长度单位 2023-10-28
- javascript – 在HTML5 Web SQL数据库中对日期时间进行排序 2023-10-26
- JavaScript使用Promise封装Axios进行高效开发 2023-07-10
- js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件) 2024-01-08
- 前端从浏览器的渲染到性能优化 2022-11-13