Как изменить размер изображения с помощью CSS без изменения качества изображения - PullRequest
0 голосов
/ 04 июня 2018

У меня есть карусель Bootstrap с кодом ниже;Как я могу изменить размер этого изображения, чтобы полностью заполнить карусель с потерей качества изображения, а также обеспечить, чтобы высота изображения не превышала ширину или высоту карусели?image

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.1/css/bootstrap.min.css" rel="stylesheet"/>
<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" style="width:400px;">
      <img class="d-block w-100" src="{{articles.image.url}}" alt="First slide" style=" width:100%;height:auto;">
      <div class="carousel-caption d-none d-md-block">
        <h5>Latest</h5>
        <p>{{articles.title}}</p>
      </div>
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=666&fg=444&text=Second slide" alt="Second slide">{% lorem 1 p %}
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=555&fg=333&text=Third slide" alt="Third slide">{% lorem 1 p %}
    </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>

Ответы [ 4 ]

0 голосов
/ 05 июня 2018

Другой альтернативой является использование фоновых изображений css вместо тегов img и использование свойства cover-size background-size, которое имеет большую поддержку браузера по сравнению со свойством img object fit.

<div class="carousel-item" style="background: url('')"></div>

.carousel-item{
    height: 500px;
    background-color: #000;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
0 голосов
/ 04 июня 2018

Старый код:

<div class="carousel-inner">
    <div class="carousel-item active" style="width:400px;">
      <img class="d-block w-100" src="{{articles.image.url}}" alt="First slide" style=" width:100%;height:auto;">
      <div class="carousel-caption d-none d-md-block">
        <h5>Latest</h5>
        <p>{{articles.title}}</p>
      </div>
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=666&fg=444&text=Second slide" alt="Second slide">{% lorem 1 p %}
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=555&fg=333&text=Third slide" alt="Third slide">{% lorem 1 p %}
    </div>
  </div>

Редактировать carousel-item с помощью:

width: 100%;
height: auto; 
0 голосов
/ 04 июня 2018

Используйте свойство подгонки объекта в вашем css и присвойте фиксированную ширину и высоту тегу изображения или соответствующему классу, чтобы каждое изображение имело одинаковую ширину и высоту, теперь ваше изображение не будет искажено.

 .d-block w-100 {
   width:100%;
   height:550px;
   object-fit:cover;
   object-position:50% 50%;
  }
0 голосов
/ 04 июня 2018

Вы можете сделать изображение 100% шириной и высотой автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...