在绝对 div 中使用 Z-index 和定位文本来创建水印

Using Z-index and positioning text in absolute divs to create a water-mark

我正在制作一个 div,我想说 "Banner",后面有一个更大的灰色 "BANNER"。有点像水印。但是定位错误,浏览器在横幅文本的顶部呈现 'water-mark'。

.banner {
  position: absolute;
  height: 10%;
  width: 100%;
  background-color: black;
  color: red;
  vertical-align: top;
  overflow: hidden;
  z-index: -1;
}
.wrapper {
  position: relative;
  height: 100%;
  width: 100%;
}
.foreground {
  width: 100%;
  height: 100%;
  font-size: 2em;
  margin: 0;
  padding: 0;
  top: 0;
  text-align: center;
  z-index: 2;
}
.background {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  top: 0;
  text-align: center;
  vertical-align: center;
  color: lightgrey;
  font-size: 7em;
  z-index: 1;
}
<div class="banner">
  <div class="wrapper">
    <div style="position:absolute; width:100%">
      <p class="foreground">Banner!</p>
    </div>
    <div style="position:absolute; width:100%">
      <p class="background">BANNER!</p>
    </div>
  </div>
</div>

由于我不想进入这里的原因,banner 需要保持 position: absolute(抱歉,如果限制太多)

否则我们可以自由发挥。我希望水印从 banner div 的顶部和底部稍微溢出,或者至少与顶部齐平。

但是最重要的是我需要foregrounddiv内容的水印

感谢您的帮助!我更喜欢 CSS 解决方案,但 JS 也将不胜感激。 PS here's a jsfiddle 如果你愿意的话。

EDIT 我通过放置我之前尝试过的 margin-top:-5% 解决了高度问题,但百分比太高了。显然它超出了页面的高度而不是它的父级。也许是因为 position:absolute。感谢您的帮助!

如果您希望它以不同的顺序出现,请更改 html 的顺序。然后你也可以去掉 z-indexes。所以:

<div class="banner">
 <div class="wrapper">
  <div style="position:absolute; width:100%">
   <p class="background">BANNER!</p>
  </div>
  <div style="position:absolute; width:100%">
   <p class="foreground">Banner!</p>
  </div>
</div>

或者/另外: 如果你需要它作为水印,为什么不给 .background 添​​加一些不透明度,比如 0.3?这实际上并没有把它放在文本后面,而是让它看起来像一个水印。

在此 fiddle 工作:https://jsfiddle.net/0srj5hus/1/