向背景图像添加深色叠加层

新手上路,请多包涵

我看过几个关于这个的 SO 帖子:我想通过添加叠加层来使当前背景图像变暗。

 #header1 {
  background: url("http://lorempixel.com/image_output/cats-q-c-640-480-10.jpg");
  background-position:center center;
  position: relative;
  background-size: cover;
  padding-bottom:5em;
}
.overlay {
  background-color: rgba(0, 0, 0, 0.7);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
}
 <div class="header">
  <div class="overlay">
    <div class="jumbotron" id="header1">
      <h1>Hello</h1>
    </div>
  </div>
</div>

也许我不明白如何使用 z-index,或者我在这里遗漏了一些东西。用于着色的深色背景未显示。任何指针?

原文由 patrickhuang94 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 320
2 个回答
 #header1 {
    background: url("https://www.random.org/analysis/randbitmap-rdo.png");/*Random image I grabbed*/
    background-size: cover;
}

h1 {
    color: white;
    background-color: rgba(0, 0, 0, 0.7);
    padding-top: 10px;
    padding-bottom: 100px;
    padding-left: 20px;
    padding-right: 20px;
}
 <div class="header">
    <div class="overlay">
        <div class="jumbotron" id="header1">
            <h1>Hello</h1>
        </div>
    </div>
</div>

正如预期的那样,h1 充当额外的可视层,其填充覆盖#header1。

第二种解决方案是将原始背景图像添加到 .header 并将 h1 中的样式赋予 #overlay 并进行一些调整也应该可以解决问题。

还有另一种可能的解决方案(类似于第二个),您可以将背景图像添加到叠加层,并使用我给#header1 或 .jumbotron 的示例中的 h1 样式

除了第一个解决方案之外,您应该能够通过添加背景颜色来添加额外的图层:叠加。我不确定它会如何影响背景,但据我猜测,它应该只是添加一层额外的颜色。

这是我使用此技术的个人示例。

例子

原文由 HTMLNoob 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 线性渐变

要使背景变暗,请参阅此 代码笔 和此 链接

<div class="bg-img"></div>

.bg-img {
  width: 100%;
  height: 100%;
  background: url('http://alexcarpenter.me/img/banner.jpg') center center no-repeat;
  background-size: cover;

  &:before {
    content: '';
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background-image: linear-gradient(to bottom right,#002f4b,#dc4225);
        opacity: .6;
  }
}

原文由 varun aaruru 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题