如何为背景图片添加叠加层

时间:2019-01-22 07:55:06

标签: html css

我想在具有背景图像的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));
}

1 个答案:

答案 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;
}