我想在具有背景图像的div上添加一个叠加层。 div将由php生成。每个div都会有一个背景图片。
当我尝试在具有背景图片的div上添加渐变叠加层时,我看不到任何变化。
我该怎么做?
这是我尝试过的
HTML
<div class="image-box" style="background-image:url(images/stacks.jpg);"></div>
<div class="image-box" style="background-image:url(images/random.jpg);"></div>
<div class="image-box" style="background-image:url(images/laos.jpg);"></div>
<div class="image-box" style="background-image:url(images/thai.jpg);"></div>
<div class="image-box" style="background-image:url(images/phils.jpg);"></div>
<div class="image-box" style="background-image:url(images/tabs.jpg);"></div>
Css
.image-box:hover{
background-image:linear-gradient(to bottom, rgba(9, 37, 70, 0.1),rgba(9, 37, 70, 0.4),rgba(9, 37, 70, 0.8));
}
答案 0 :(得分:1)
希望这对您有帮助。试试吧:
最初,我添加了一个伪元素::after
作为覆盖,并为其分配了与image-box
相同的大小,并最初为其分配了display: none;
,但将其悬停更改为{{1} },仅在悬停时应用叠加层。
display: block;
.image-box {
position: relative;
display: inline-block;
height: 200px;
width: 200px;
}
.image-box::after {
position: absolute;
top: 0;
left: 0;
display: none;
height: 100%;
width: 100%;
background:linear-gradient(to bottom, rgba(9, 37, 70, 0.1),rgba(9, 37, 70, 0.4),rgba(9, 37, 70, 0.8));
content: '';
}
.image-box {
position: relative;
display: inline-block;
height: 200px;
width: 200px;
}
.image-box:hover::after {
display: block;
}