В дополнение к стандартным заголовкам, используемым элементом карусели Bootstrap 4, я бы хотел наложить статический заголовок (или другой контент) адаптивно поверх полноэкранной карусели. Я нашел решения (такие как это) для этого, которые включают в себя абсолютное позиционирование div и указание значения для top
(например, 30%), однако это действительно работает, только если вы заранее знаете высоту статического заголовка.
Мне удалось частично добиться этого, как показано ниже ...
html:
<div id="carouselExampleIndicators" class="carousel slide carousel-fade" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
...
</ol>
<div class="carousel-inner" role="listbox">
<div class="h-100 w-100 static-caption">
<div class="d-flex text-center h-100">
<div class="my-auto w-100 ">
<h1>Static caption here</h1>
</div>
</div>
</div>
<div class="carousel-item active" style="background-image: url('image.jpg');">
<div class="carousel-caption d-none d-md-block">
<h2 class="display-4">First Slide</h2>
<p class="lead">This is a description for the first slide.</p>
</div>
</div>
...
</div>
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev"><span class="carousel-control-prev-icon"></span></a>
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next"><span class="carousel-control-next-icon"></span></a>
</div>
css:
.carousel-item {
height: 100vh;
min-height: 350px;
background: no-repeat center center scroll;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.static-caption {
position:absolute;
z-index:1;
pointer-events:none;
}
Однакоэто выглядит немного странно (особенно с z-index:1
) и полностью покрывает карусель, делая невозможным щелчок по элементам управления (отсюда pointer-events:none
). Также это 100% ширины, поэтому текст накладывается на левый / правый элементы управления. При уменьшении ширины оверлей остается выровненным по левому краю, а не по центру.