在绝对 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 的顶部和底部稍微溢出,或者至少与顶部齐平。
但是最重要的是我需要foreground
div内容的水印。
感谢您的帮助!我更喜欢 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/
我正在制作一个 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 的顶部和底部稍微溢出,或者至少与顶部齐平。
但是最重要的是我需要foreground
div内容的水印。
感谢您的帮助!我更喜欢 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/