Сделать Bootstrap Carousel центром и отзывчивым?
Я хочу, чтобы мои изображения карусели были в центре (по горизонтали), что не по умолчанию. Я следую решению на в этом разделе.
Однако, используя это решение, когда карусель изменяется и меньше изображения, изображение обрезается, а не масштабируется по умолчанию.
Как я могу центрировать свое изображение, но не заставлять его растягиваться до пункта карусели?
Ответы
Ответ 1
Я предполагаю, что у вас разные изображения. Я сам это испытал, и он работает, когда вы описываете (всегда центрированный, ширина изображений соответственно)
/*CSS*/
div.c-wrapper{
width: 80%; /* for example */
margin: auto;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img{
width: 100%; /* use this, or not */
margin: auto;
}
<!--html-->
<div class="c-wrapper">
<div id="carousel-example-generic" class="carousel slide">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner">
<div class="item active">
<img src="http://placehold.it/600x400">
<div class="carousel-caption">
hello
</div>
</div>
<div class="item">
<img src="http://placehold.it/500x400">
<div class="carousel-caption">
hello
</div>
</div>
<div class="item">
<img src="http://placehold.it/700x400">
<div class="carousel-caption">
hello
</div>
</div>
</div>
<!-- Controls -->
<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev">
<span class="icon-prev"></span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" data-slide="next">
<span class="icon-next"></span>
</a>
</div>
</div>
Это создает "прыжок" из-за переменных высот... для решения этого, попробуйте что-то вроде этого: Выберите самое высокое изображение списка
Или используйте медиа-запрос, чтобы установить свою фиксированную высоту.
Ответ 2
Теперь (на Boostrap 3 и 4) его просто:
.carousel-inner img {
margin: auto;
}
Ответ 3
добавить это
.carousel .item img {
left: -9999px; /*important */
right: -9999px; /*important */
margin: 0 auto; /*important */
max-width: none; /*important */
min-width: 100%;
position: absolute;
}
И, конечно, у одного из родительских divs должно быть положение: относительное, но я считаю, что оно по умолчанию.
Смотрите здесь: http://paginacrestinului.ro/
Ответ 4
Добавьте класс к каждому изображению в коде карусели html, затем с помощью css apply margin: 0 auto
.
Ответ 5
.carousel-inner > .item > img {
margin: 0 auto;
}
Это простое решение для меня работало
Ответ 6
Имел очень схожую проблему с этим при использовании CMS, но он не решался с помощью вышеупомянутого решения. То, что я сделал для его решения, в приведенном ниже примере:
background-size: cover
и для целей размещения, если вы используете бутстрап, я использовал:
background-position: center center /* or whatever position you wanted */
Ответ 7
Используя это при загрузке 3:
#carousel-example-generic{
margin:auto;
}
Ответ 8
Попробуйте задать ширину в% для изображения в карусели?
.item img {
width:100%;
}
Ответ 9
Я разместил <div class="carousel" id...>
внутри другого div с контейнером класса (<div class="container"><div class="carousel" id="my-carousel">...</div></div>
). Это тоже решило.
Ответ 10
в bootstrap v4, я center и заполните карусель img на экране, используя
<img class="d-block mx-auto" max-width="100%" max-height="100%">
достаточно уверен, что для этого требуются высота или ширина родительских элементов
html,body{height:100%;}
.carousel,.carousel-item,.active{height:100%;}
.carousel-inner{height:100%;}
Ответ 11
В Boostrap 4 просто добавьте mx-auto
в свой класс изображений карусели.
<div class="carousel-item">
<img class="d-block mx-auto" src="http://placehold.it/600x400" />
</div>
Совместите с образцами документацию по карусельной загрузке, если хотите.