изображения не подходят к карусели в начальной загрузке 4 - PullRequest
0 голосов
/ 10 марта 2019

У меня есть карусель с изображениями.Но изображения показаны слишком увеличенными.

Вот мой HTML-код:

<header>
    <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
      <ol class="carousel-indicators">
        <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
      </ol>
      <div class="carousel-inner" role="listbox">
        <!-- Slide One - Set the background image for this slide in the line below -->
        <div class="carousel-item active" style="background-image: url(/images/holz_5.jpg)">
          <div class="carousel-caption d-none d-md-block">
            <h3>First Slide</h3>
            <p>This is a description for the first slide.</p>
          </div>
        </div>
        <!-- Slide Two - Set the background image for this slide in the line below -->
        <div class="carousel-item" style="background-image: url(/images/holz_6.jpg)">
          <div class="carousel-caption d-none d-md-block">
            <h3>Second Slide</h3>
            <p>This is a description for the second slide.</p>
          </div>
        </div>
        <!-- Slide Three - Set the background image for this slide in the line below -->
        <div class="carousel-item" style="background-image: url(/images/holz_4.jpg)">
          <div class="carousel-caption d-none d-md-block">
            <h3>Third Slide</h3>
            <p>This is a description for the third slide.</p>
          </div>
        </div>
      </div>
      <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
      </a>
      <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
      </a>
    </div>
  </header>

Это мой код CSS:

.carousel-item {
  height: 65vh;
  min-height: 300px;
  background: no-repeat center center scroll;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
  object-fit: cover !important;
}

Вот так это выглядиткак:

zoomed

Это оригинальное изображение:

original

Почему это так увеличено на картинке?Я хочу, чтобы он сохранял исходный размер, чтобы он подходил к карусели.

Ответы [ 3 ]

1 голос
/ 10 марта 2019

Вы можете сравнить свой код с этим. Снимки здесь идеально увеличиваются.

Обновление: удалите тег стиля img из кода CSS, чтобы избежать глобального стиля для всех отдельных изображений.

.carousel-item {
  background: no-repeat center center scroll;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
  object-fit: cover !important;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
  <ol class="carousel-indicators">
    <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
    <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
    <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
  </ol>
  <div class="carousel-inner">
    <div class="carousel-item active">
      <div class="carousel-caption d-none d-md-block">
        <h3>Third Slide</h3>
        <p>This is a description for the third slide.</p>
      </div>
      <img src="https://i.stack.imgur.com/8h5Xz.jpg" class="d-block w-100" alt="...">
    </div>
    <div class="carousel-item">
      <div class="carousel-caption d-none d-md-block">
        <h3>Third Slide</h3>
        <p>This is a description for the third slide.</p>
      </div>
      <img src="https://i.stack.imgur.com/8h5Xz.jpg" class="d-block w-100" alt="...">
    </div>
    <div class="carousel-item">
      <div class="carousel-caption d-none d-md-block">
        <h3>Third Slide</h3>
        <p>This is a description for the third slide.</p>
      </div>
      <img src="https://i.stack.imgur.com/8h5Xz.jpg" class="d-block w-100" alt="...">
    </div>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>
0 голосов
/ 11 марта 2019

Я не думаю, что есть какие-либо проблемы с дисплеем карусели. Вам нужно решить, как вы хотите отобразить изображение в карусели.

Есть 2 варианта:

1) Не ограничивайте высоту карусели.

Если вы не ограничите высоту карусели, будет видно все изображение. Но высота будет очень большой на больших экранах. Итак, в какой-то момент лучше ограничить высоту карусели.

2) Ограничить высоту карусели.

Как я видел в вашем коде, вы ограничили высоту 65vh. Когда вы ограничиваете высоту элемента карусели, изображение может отображаться либо в

  • cover mode - изображение заполняет контейнер, но может быть обрезано, если соотношение сторон отличается.
  • contain - изображение не обрезается, отображается все изображение. Но у вас могут быть пустые области либо горизонтально, либо вертикально внутри контейнера в зависимости от соотношения сторон.

Как я вижу в вашем коде, вы использовали background-size: cover, поэтому изображение обрезается по вертикали, чтобы заполнить область контейнера.

Для более глубокого понимания, вы можете перейти к следующему сообщению на stackoverflow, чтобы узнать, как изображения расположены в режимах cover или contain: https://stackoverflow.com/a/27941378/1266447

0 голосов
/ 10 марта 2019

Это весь мой css: может быть, здесь что-то не так?

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

.carousel-item {
  height: 65vh;
  min-height: 300px;
  background: no-repeat center center scroll;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
  object-fit: cover !important;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: 0.5rem;
  font-family: inherit;
  font-weight: 500;
  line-height: 1.2;
  color: inherit;
}

.row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

.row img {
  width: 24px;
  height: 24px;
}

.navbar-brand img {
  width: 24px;
  height: 24px;
}

.border-top {
  border-top: 1px solid #dee2e6 !important;
}

footer {
  display: block;
}

.featurette-divider {
  margin: 5rem 0; /* Space out the Bootstrap <hr> more */
}

.featurette-heading {
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.05rem;
}

@media (min-width: 40em) {
  /* Bump up size of carousel content */
  .carousel-caption p {
    margin-bottom: 1.25rem;
    font-size: 1.25rem;
    line-height: 1.4;
  }

  .featurette-heading {
    font-size: 50px;
  }
}

@media (min-width: 62em) {
  .featurette-heading {
    margin-top: 7rem;
  }
}

.marketing h2 {
  font-weight: 400;
}

.p-2 {
  padding: 0.5rem !important;
  padding-top: 0.5rem !important;
  padding-right: 0.5rem !important;
  padding-bottom: 0.5rem !important;
  padding-left: 0.5rem !important;
}

#testimonia {
  background: rgba(228, 136, 31, 0.8);
  padding: 30px 0 30px 0;
  text-align: center;
  margin-top: 40px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.05rem;
}

#testimonia p {
  font-size: 25px;
}

.navbar-brand {
  font-size: 20px;
  color: #000;
  font-weight: bold;
}

img {
  width: 500px;
  height: 500px; 
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

footer {
  padding-bottom: 30px;
}

#btn1 {
  margin-bottom: 20px;
}

.modal-header {
  background: #e4881f;
}
.full-screen {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

a {
  color: #e4881f;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...