[英]how to overlay a background color on image in a div onhover
#overlay{ display:none; position:relative; background-color:rgba(0,0,0,0.5); top:0; left:0; z-index:0; } #main{ min-height:100px; border:1px solid; } #main:hover #overlay{ display:block; }
<div id="main"> <div id="overlay"></div> this is something </div>
I am trying to show a backgorund color on hover of the div and i have image in div instead of text in real code 我正在尝试在div的悬停上显示backgorund颜色,并且我在div中有图像而不是真实代码中的文本
You can use #main:hover:after
for the overlay. 您可以将
#main:hover:after
用于叠加层。 Try this. 尝试这个。
#main{ min-height: 100px; border:1px solid; position: relative; display: inline-block; } #main:hover:after{ content: ""; position: absolute; height: 100%; width: 100%; left: 0; top: 0; background-color:rgba(0,0,0,0.5); }
<div id="main"> <img src="http://via.placeholder.com/640x360"> </div>
Use position:absolute
, height:100%
& width:100%
使用
position:absolute
, height:100%
, width:100%
#overlay{ display:none; position: absolute; background-color: rgba(0,0,0,0.5); top: 0; left: 0; z-index: 1; width: 100%; height: 100%; } #main{ position:relative; min-height:100px; border:1px solid; } #main:hover #overlay{ display:block; }
<div id="main"> <div id="overlay"></div> this is something </div>
give position:relative
to #main
and add the below style to #overlay
id: 给出
position:relative
对于#main
position:relative
,并将以下样式添加到#overlay
id中:
#overlay {
display: none;
position: absolute;
background-color: rgba(0,0,0,0.5);
top: 0;
left: 0;
right: 0;
z-index: 1;
bottom: 0;
}
#overlay{ display:none; position:absolute; content:''; left:0; right:0; bottom:0; top:0; background-color:rgba(0,0,0,0.5); } #main{ min-height:100px; border:1px solid; position:relative; } #main:hover #overlay{ display:block; }
<div id="main"> <div id="overlay"></div> this is something </div> <!-- begin snippet: js hide: false console: true babel: false -->
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.