Растянутые изображения и центрированное содержимое с помощью Bootstrap
Мне нужно выложить веб-страницу с двумя изображениями, которые должны растянуться, чтобы заполнить доступное окно браузера, но с текстовым контентом, расположенным по центру страницы. До сих пор единственные способы, с которыми я, по-видимому, в состоянии это сделать: a) объединить два изображения в один и установить это как фоновое изображение для body
, затем осторожно вертикально поместить средний диапазон содержимого в соответствии с пробелом между изображениями или, b) вложить a container
(фиксированный) div внутри a container-fluid
, удерживая изображение, и фиксированное содержимое текстового содержимого. Однако я видел ужасные предупреждения и презрение к тем, кто выступает за вложенные контейнеры для бутстрапов.
Это изображение может помочь передать то, что мне нужно:
![enter image description here]()
"Изображение 1" должно растягиваться по всему окну, при этом оставшееся содержимое по центру, то же самое с "Изображение 2", с простой полосой белого цвета по вертикали между изображениями и простой полосой серого справа по экрану в внизу.
Ответы
Ответ 1
Вы можете попробовать это.
Обратите внимание, что вам необходимо применить некоторые специальные CSS, как того требуют ваши потребности в дизайне. Следуйте примеру:
.container-fluid {
padding: 0;
}
.container-fluid.wrapper {
padding-top: 100px;
}
.ht33 {
height: 200px;
}
.container.content {
width: 970px;
position: absolute;
height: 800px;
background: gray;
color: #fff;
top: 0;
left: 0;
right: 0;
margin-right: auto;
margin-left: auto;
}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<div class="container-fluid wrapper">
<div class="container content"></div>
<div class="container-fluid bg-primary ht33"></div>
<div class="container-fluid bg-warning ht33"></div>
<div class="container-fluid bg-danger ht33"></div>
</div>
Ответ 2
Я использовал класс row
для BG, чтобы иметь ощущение Grid на них, а также устранить отступы.
HTML
<div class="container-fluid wrapper">
<div class="container content bg-primary"></div>
<div class="row bg-success bg"></div>
<div class="row bg-warning bg"></div>
<div class="row bg-danger bg"></div>
</div>
CSS
.container-fluid.wrapper {
padding-top: 100px;
}
.bg {
height: 200px;
}
.container.content {
width: 970px;
position: absolute;
height: 800px;
color: #fff;
top: 0;
left: 0;
right: 0;
margin: 0 auto;
}
Ответ 3
Вы можете попробовать сделать это следующим образом:
http://jsfiddle.net/kqoonr24/1/
Возможно, вам придется адаптировать его в соответствии с вашими потребностями, но это основная идея.:-)
В принципе, вам нужно иметь div, который действует как фон и содержит отдельные div, которые составляют каждый элемент фона.
Затем после этого вы захотите иметь передний div, в котором находится фактический контент.
html,
body,
.wrapper,
.foreground,
.background {
height: 100%;
width: 100%;
}
.foreground {
background-color: green;
max-width: 400px;
margin: 0 auto;
}
.background {
position: absolute;
z-index: -1;
}
.background > * {
height: 33%;
content: '';
}
.background-element-1 {
background-color: blue;
}
.background-element-2 {
background-color: red;
}
.background-element-3 {
background-color: orange;
}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<body>
<div class="wrapper">
<div class="background">
<div class="background-element-1"></div>
<div class="background-element-2"></div>
<div class="background-element-3"></div>
</div>
<div class="foreground">
<div class="foreground-inner">
I am your text!
</div>
</div>
</div>
</body>
Ответ 4
Самый простой пример, о котором я мог подумать, предположил, что вы не знаете размер ваших фоновых изображений, поэтому я кладу их внутри фона div, что не влияет на поток страниц, в то время как сверху есть естественный контент
Демо
<div class="images-wrapper">
<img src="..." alt="">
<img src="..." alt="">
</div>
<div class="container">
.......
</div> <!-- /container -->
body {
background:#ccc;
}
.images-wrapper {
position:absolute;
top:0;
left:0;
right:0;
background:#fff;
z-index:0;
}
.images-wrapper img {
display:block;
width:100%;
height:auto;
margin-top:30px;
}
.container {
z-index:2;
position:relative;
background:#fff;
}