如何使用CSS调整图像大小而不改变图像质量

时间:2018-06-04 11:32:11

标签: html css twitter-bootstrap-3

我有一个带有以下代码的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>
&#13;
&#13;
&#13;

6 个答案:

答案 0 :(得分:2)

您可以使图像100%宽度和高度自动。

答案 1 :(得分:1)

代码:

<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; 

答案 2 :(得分:1)

在css中使用object fit属性,并给出固定的宽度和高度 您的图片标记或相应的类,以便每个图像都具有相同的宽度和高度,现在您的图像不会被扭曲。

{1,2,3,4}

答案 3 :(得分:0)

另一个替代方法是使用css背景图像而不是img标签并使用background-size cover属性,与img对象适合属性相比,它具有更多的浏览器支持。

<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;
}

答案 4 :(得分:0)

我以前的图像尺寸为960px * 720px,当时我将其用作徽标。这样可以减小尺寸而不会拉伸。

使用CSS选择器指向该图像调整高度

{ height: 100px;}

width的默认值为auto。 您可以根据自己的目标调整合适的高度值。

答案 5 :(得分:0)

我遇到了同样的问题,并通过添加d-flex并像这样将内容对齐到中心图像​​来解决该问题,

<div class="slide-control d-flex justify-content-center">

然后我使用了这些CSS属性

.slide-image {
    width: auto;
    height: 870px; 
   }
   .slide-control{
    margin: 40px 177px 0 177px;
   }

您应该在.slide-control类中使用margin,否则滑动会在左侧结束。