图片hover时有遮罩

以往想到给图片加个蒙版遮罩,之前都会这样写

 .div1{position: relative;display: inline-block;}
 .span1{position: absolute;top:0;bottom: 0;left:0;right:0;background: rgba(0,0,0,.5);display: none;z-index: 2;}
 .img1:hover + .span1{display: block;}

<div class="div1">
    <img src="imgurl" class="img1"/>
    <span class="span1"></span>
</div>

其中span 担当了黑色的遮罩的功能,图片hover时影响着span的出现,但这中hover时会出现闪烁

最近发现了一种新的写法,非常的简单,html结构和css都变得很简洁,也没有上面的这种问题

.div2{background:black;display: inline-block;font-size: 0}
.img2:hover{opacity: 0.5}

<div class="div2">
    <img src="imgurl" class="img2"/>
</div>

外围的div背景色为黑色,当图片hover时图片呈半透明,就会半露出div的黑色,看起来就像在图片加了层黑色的遮罩。



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用CSS的伪类选择器`:hover`以及`::before`或`::after`伪元素来实现背景图片hover加蒙层的效果。 具体实现步骤如下: 1. 给需要添加背景图片的元素设置一个相对定位的父级元素,并设置背景图片。 2. 给该父级元素设置一个宽高和`overflow:hidden`,以隐藏超出父级元素的内容。 3. 使用`::before`或`::after`伪元素来创建一个遮罩层,并设置其宽高和背景颜色,透明度等属性。 4. 给遮罩添加`transition`属性,以实现渐变过渡效果。 5. 使用`opacity`属性来控制遮罩层的透明度,当鼠标移至图片上时,通过`:hover`伪类选择器来控制遮罩层的透明度。 6. 在遮罩层中添加需要显示的文字或其他内容。 示例代码如下: HTML: ``` <div class="box"> <div class="bg"></div> <div class="mask"> <h2>这是遮罩层</h2> <p>这是遮罩层中的文字内容</p> </div> </div> ``` CSS: ``` .box { position: relative; width: 300px; height: 200px; overflow: hidden; } .bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url(图片地址) no-repeat center center; background-size: cover; } .mask { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 0.3s ease; background-color: rgba(0, 0, 0, 0.5); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: #fff; } .box:hover .mask { opacity: 1; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值