Сделать 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> 

Совместите с образцами документацию по карусельной загрузке, если хотите.