【问题标题】:How to make carousel responsive?如何使轮播响应?
【发布时间】:2021-07-30 20:04:53
【问题描述】:

我正在使用下面的代码来制作具有垂直图像的轮播。它没有响应,即它在桌面上完全可以正常工作,但在减小屏幕尺寸时,图像不完全可见(即图像的一半在轮播中不可见)。

我怎样才能消除这个错误?

<div class="container ">
   <div class="col-md-offset-1 col-md-11 col-sm-2 col-xs-12">
      <div id="carousel-pager" class="carousel slide " data-ride="carousel" data-interval="1000">
         <div class="carousel-inner vertical">
            <div class="active item" style="object-fit: fill;">
               <img  style="object-fit: fill;" src="..." class="img-responsive" data-target="#carousel-main" data-slide-to="0" width:100>
            </div>
            <div class="item" style="object-fit: fill;">
               <img src="..." class="img-responsive" data-target="#carousel-main" data-slide-to="1">
            </div>
            <div class="item" style="object-fit: fill;">
               <img src="..." class="img-responsive" data-target="#carousel-main" data-slide-to="2">
            </div>
         </div>
         <a class="left carousel-control" href="#carousel-pager" role="button" data-slide="prev">
         <span class="glyphicon glyphicon-chevron-up" aria-hidden="true"></span>
         <span class="sr-only">Previous</span>
         </a>
         <a class="right carousel-control" href="#carousel-pager" role="button" data-slide="next">
         <span class="glyphicon glyphicon-chevron-down" aria-hidden="true"></span>
         <span class="sr-only">Next</span>
         </a>
      </div>
   </div>
</div>

【问题讨论】:

    标签: css vue.js bootstrap-4 frontend carousel


    【解决方案1】:

    您正在使用引导程序,您应该添加类:d-block 和 mx-auto 以响应所有 img 标签。

    像这样:

    <img src="..." class="d-block mx-auto" data-target="#carousel-main" data-slide-to="2">
    

    这会让他们反应灵敏。

    来源:https://getbootstrap.com/docs/4.0/components/carousel/

    还将所有 div 的 class="item" 更改为 div class="carousel-item"

    或者使用这个:

    <div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
      <div class="carousel-inner">
        <div class="carousel-item active">
          <img class="d-block w-100" src="..." alt="First slide">
        </div>
        <div class="carousel-item">
          <img class="d-block w-100" src="..." alt="Second slide">
        </div>
        <div class="carousel-item">
          <img class="d-block w-100" src="..." alt="Third slide">
        </div>
      </div>
      <a class="carousel-control-prev" href="#carouselExampleControls" 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="#carouselExampleControls" role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
      </a>
    </div>
    

    【讨论】:

    • 嗨@Michael 我试过这个,没用。静止图像只有一半可见。
    • 你的错误与类有关,你应该坚持引导类,添加你的但不要改变其他的。将此添加到 div 类 class="carousel-item",
    • "carousel-item" 使垂直滑块水平我没有添加它,但感谢添加 d-block w-100 类。
    【解决方案2】:

    你可以试试这个:

    .carousel-inner > .item > img {
        position: absolute;
        top: 0;
        left: 0;
        min-width: 100%;
        height: 500px;
    }
    

    我已添加min-width: 100%; 以使图像占据完整容器。

    【讨论】:

    • 嗨@kevin,我添加了这个但没有改变。问题还是一样。
    • @someonetonobody 你在哪里添加的?
    • 我在 vue.js 添加 css(scoped) 给 img 一个类并添加 css。 “使图像成为完整的容器。”-这是我在 webapp 中不需要的东西。
    • @someonetonobody 当图像取满容器时,它不会切半部分。您可以将它们添加到您的自定义样式表并链接到 HTML。
    猜你喜欢
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 2014-09-13
    • 2022-10-04
    • 2021-01-09
    • 1970-01-01
    相关资源
    最近更新 更多