具有不同高度的多个背景图像
Multiple background images with different heights
我想要一个包含 2 个背景图像的 Bootstrap 超大屏幕。总体思路如附图所示。底层是一张全宽照片(以灰色表示),在它上面是一个透明的 PNG(以黄色表示)。 Jumbotron 的高度设置为 350px,适用于全角照片。话虽如此,我希望顶层超过 350px,以便它与 Jumbotron 下方 div 中的文本重叠。您建议我如何实现这一目标?
我有一些 HTML 标记如下:
<body>
<section class="jumbotron">
<h1>Tag line in a Bootstrap Jumbotron</h1>
</section>
<section>
<h2>Title</h2>
<p>Lorem ipsum dolor sit amet,...</p>
</section>
</body>
我有以下 CSS:
.jumbotron {
background-image: url("top.png"), url("bottom.jpg");
background-size: cover;
background-repeat: no-repeat;
background-attachment: scroll;
background-position: 50% 0%;
height: 350px;
}
使用这些代码,我能够正确堆叠 2 个背景图像,以便透明顶层很好地位于底层之上。但是,我不知道如何让顶层超出 350px,以便它可以与下面的文本重叠。
任何建议将不胜感激。谢谢!
* 更新 *
所以我试图回答我自己的问题。我取得了一些进展,但解决方案似乎并不完整。这是我所做的...
我添加了一个额外的 div 以仅保留顶部透明 PNG 层并使用负边距将其向上推以覆盖超大屏幕。但是当我这样做时,超大屏幕中的标语不能再是 highlighted/selected。看起来好像顶部透明 PNG 层正在覆盖它。我试过玩 z-index 但这没有帮助。这是我更新的 HTML:
<body>
<section class="jumbotron">
<h1>Tag line in a Bootstrap Jumbotron</h1>
</section>
<section class="container-fluid">
<div class="row">
<div class="png-layer"></div>
</div>
<div class="content row">
<div>
<h2>Title</h2>
<p>Lorem ipsum dolor sit amet,...</p>
</div>
</div>
</section>
</body>
已更新CSS:
.jumbotron {
background-image: url("bottom.jpg");
background-size: cover;
background-repeat: no-repeat;
background-attachment: scroll;
background-position: 50% 0%;
height: 350px;
}
.png-layer {
background-image: url("top.png");
height: 500px;
margin-top: -350px;
}
.content {
margin-top: -200px;
}
关于如何微调解决方案以使其完美的任何想法?谢谢!
最好的方法是(在我看来,正如您在问题更新中正确指出的那样)创建一个 div
专门保存您想要覆盖在 Jumbotron 之上的 .png 和文本。 该元素的CSS应该包括:
z-index:xxxx;
其中 xxxx
是允许您的 div 显示在您打算用作背景的图像之上的任何值(即高于它包含 div
) 但低于您希望它出现在下面的文本。还要记住 z-index
仅适用于您定义了 position
属性的元素。
pointer-events: none;
这样您仍然可以 select 它下面的文字。
祝你好运。
我想要一个包含 2 个背景图像的 Bootstrap 超大屏幕。总体思路如附图所示。底层是一张全宽照片(以灰色表示),在它上面是一个透明的 PNG(以黄色表示)。 Jumbotron 的高度设置为 350px,适用于全角照片。话虽如此,我希望顶层超过 350px,以便它与 Jumbotron 下方 div 中的文本重叠。您建议我如何实现这一目标?
我有一些 HTML 标记如下:
<body>
<section class="jumbotron">
<h1>Tag line in a Bootstrap Jumbotron</h1>
</section>
<section>
<h2>Title</h2>
<p>Lorem ipsum dolor sit amet,...</p>
</section>
</body>
我有以下 CSS:
.jumbotron {
background-image: url("top.png"), url("bottom.jpg");
background-size: cover;
background-repeat: no-repeat;
background-attachment: scroll;
background-position: 50% 0%;
height: 350px;
}
使用这些代码,我能够正确堆叠 2 个背景图像,以便透明顶层很好地位于底层之上。但是,我不知道如何让顶层超出 350px,以便它可以与下面的文本重叠。
任何建议将不胜感激。谢谢!
* 更新 * 所以我试图回答我自己的问题。我取得了一些进展,但解决方案似乎并不完整。这是我所做的...
我添加了一个额外的 div 以仅保留顶部透明 PNG 层并使用负边距将其向上推以覆盖超大屏幕。但是当我这样做时,超大屏幕中的标语不能再是 highlighted/selected。看起来好像顶部透明 PNG 层正在覆盖它。我试过玩 z-index 但这没有帮助。这是我更新的 HTML:
<body>
<section class="jumbotron">
<h1>Tag line in a Bootstrap Jumbotron</h1>
</section>
<section class="container-fluid">
<div class="row">
<div class="png-layer"></div>
</div>
<div class="content row">
<div>
<h2>Title</h2>
<p>Lorem ipsum dolor sit amet,...</p>
</div>
</div>
</section>
</body>
已更新CSS:
.jumbotron {
background-image: url("bottom.jpg");
background-size: cover;
background-repeat: no-repeat;
background-attachment: scroll;
background-position: 50% 0%;
height: 350px;
}
.png-layer {
background-image: url("top.png");
height: 500px;
margin-top: -350px;
}
.content {
margin-top: -200px;
}
关于如何微调解决方案以使其完美的任何想法?谢谢!
最好的方法是(在我看来,正如您在问题更新中正确指出的那样)创建一个 div
专门保存您想要覆盖在 Jumbotron 之上的 .png 和文本。 该元素的CSS应该包括:
z-index:xxxx;
其中xxxx
是允许您的 div 显示在您打算用作背景的图像之上的任何值(即高于它包含div
) 但低于您希望它出现在下面的文本。还要记住z-index
仅适用于您定义了position
属性的元素。pointer-events: none;
这样您仍然可以 select 它下面的文字。
祝你好运。