Как покрыть фоновые изображения в Bootstrap 3 сетках?
Я пытаюсь сделать целевую страницу с помощью Bootstrap 3. Я хочу, чтобы верхнее изображение в столбце полной ширины содержало три изображения под ним в столбцах и без полей или границ, чтобы изображения легко соединялись.
Я могу приблизиться, но когда я сужу порт представления, между верхним изображением и рядом с ним открывается пространство.
Вот URL:
Вот мой код:
HTML:
<div class="container-fluid">
<div class="row">
<div class="landing-col col-xs-12"></div>
</div>
<div class="row">
<div class="first-col col-sm-4"></div>
<div class="second-col col-sm-4"></div>
<div class="third-col col-sm-4"></div>
</div>
</div>
CSS:
.landing-col {
background: url('../images/99.jpg') no-repeat;
-webkit-background-size: 100% auto;
-moz-background-size: 100% auto;
-o-background-size: 100% auto;
background-size: 100% auto;
height: 500px; }
.first-col {
background: url('../images/44.jpg') no-repeat;
-webkit-background-size: 100% auto;
-moz-background-size: 100% auto;
-o-background-size: 100% auto;
background-size: 100% auto;
height: 300px;
}
.second-col {
background: url('../images/33.jpg') no-repeat;
-webkit-background-size: 100% auto;
-moz-background-size: 100% auto;
-o-background-size: 100% auto;
background-size: 100% auto;
height: 300px;
}
.third-col {
background: url('../images/22.jpg') no-repeat;
-webkit-background-size: 100% auto;
-moz-background-size: 100% auto;
-o-background-size: 100% auto;
background-size: 100% auto;
height: 300px;
}
Я попытался использовать min-width и max-width со 100%, но они не работают для меня.
Возможно, можно использовать медиа-запрос, чтобы получить точную ширину текущей сетки и установить ширину изображения внутри нее этой ширины. Это возможно?
Ответы
Ответ 1
Вы можете использовать элемент блока с фоновым изображением, где высота задается с помощью padding-bottom с процентным значением
.img {
margin-right: -15px; // Remove right gap
margin-left: -15px; // Remove left gap
padding-bottom: 62.5%; // ratio is 16:10
background-position: 50% 50%;
background-repeat: no-repeat;
background-size: cover;
}
Пример в Кодепене
или с элементами img (в этом случае ваши изображения должны иметь одинаковые размеры)
Пример в Кодепене
Ответ 2
Попробуйте:
- Выполнить "строки" в один.
- Добавьте
col-md-*
в каждый столбец - Уменьшение
landing-col
высоту 300px
HTML
<div class="container-fluid">
<div class="row">
<div class="landing-col col-md-12 col-xs-12"></div>
<div class="first-col col-md-4 col-sm-4"></div>
<div class="second-col col-md-4 col-sm-4"></div>
<div class="third-col col-md-4 col-sm-4"></div>
</div>
</div>
CSS
.landing-col {
background: url('http://sample.trainingdata.com.au/images/99.jpg') no-repeat;
-webkit-background-size: 100% auto;
-moz-background-size: 100% auto;
-o-background-size: 100% auto;
background-size: 100% auto;
height: 300px;
margin:0;
padding:0px;
}
Демо здесь => http://fiddle.jshell.net/nobuts/7x0rpn5y/12/show/light/.
Ответ 3
Вы всегда можете добавить прозрачный заполнитель изображения внутри div для хранения контейнера, а затем установить автоматическую высоту для содержащего div 'col-xs-12'. Это все равно позволит вам использовать фоновое изображение с атрибутом обложки, который заполнит область на более узких столбцах.
Ответ 4
Вам действительно нужно использовать верхнее изображение в качестве фона div? Попробуйте этот код вместо вашего <div class="landing-col col-xs-12"></div>
:
<div class="landing-col col-xs-12">
<img src="images/99.jpg">
</div>
После этого все необходимые вам свойства:
.landing-col { padding: 0px; } // resets .col-xs-12 padding-right and padding-left
.landing-col img { width:100%; }