首页 > 解决方案 > bootstrap 4 carousel 的控件不起作用

问题描述

我正在学习,tacher 向我们询问了一个带有轮播的统计页面。所以我想使用boostrap。轮播有点用,但我不知道如何使它居中,更重要的是,控件不起作用。

以下是相关代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <!-- CSS & BOOTSTRAP -->
  <link rel="stylesheet" href="./css/bootstrap-4.5.2-dist/css/bootstrap.min.css">
  <link rel="stylesheet" href="./css/main.css">

  <title>Site Statique</title>

</head>
<body>
  <div class="container">
<!-- ======================================================================== -->
      <!-- CAROUSEL PLACEHOLDER -->
      <!-- ======================================================================== -->

     
      <div class="row">
        <div class="col-md-12">
          <div class="mx-auto">
            <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">
                  <img class="img-carousel d-block w-100"
                      src="./img/many_dices_1.png"
                      alt="First slide">
                </div>

                <div class="carousel-item">
                  <img class="img-carousel d-block w-100"
                      src="./img/dice_sheet.jpg"
                      alt="Second slide">
                </div>

                <div class="carousel-item">
                  <img class="img-carousel d-block w-100"
                      src="./img/D_20.webp"
                      alt="Third slide">
                </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>

          </div>
        </div>
      </div>
    <!-- ======================================================================== -->
    <!-- EO CAROUSSEL -->
    <!-- ======================================================================== -->

  <!-- Scripts tags -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
  <script src="./css/bootstrap-4.5.2-dist/js/bootstrap.min.js"></script>
</body>
</html>

所以轮播工作,图像滑动,但小图像没有居中,控件不起作用。任何想法为什么?提前致谢

更新:现在控件可以工作了,但我不知道如何使图像保持比例。这是我的CSS规则

.img-carousel{
    width: auto;
    height: 100%;
    max-height: 500px;
}

标签: htmlbootstrap-4carousel

解决方案


我修复了你的标记。你有点混淆了:

  • 在您的示例<image>中有两个class=""错误,只需用空格继续课程
  • 按钮 next 和 prev 没有一个href="#"所以怎么能工作?

工作示例:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <!-- CSS & BOOTSTRAP -->
   <!-- CSS only -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
  <link rel="stylesheet" href="./css/main.css">

  <title>Site Statique</title>

</head>
<body>
  <div class="container">
<!-- ======================================================================== -->
      <!-- CAROUSEL PLACEHOLDER -->
      <!-- ======================================================================== -->

      <div class="row">
        <div class="col-md-12">
          <div class="mx-auto">
            <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
              <ol class="carousel-indicators">
                <li data-target="" data-slide-to="0" class="active"></li>
                <li data-target="" data-slide-to="1"></li>
                <li data-target="" data-slide-to="2"></li>
              </ol>

              <div class="carousel-inner">
                <div class="carousel-item active">
                  <img class="img-carousel d-block w-100"
                      src="https://via.placeholder.com/150"
                      alt="First slide">
                </div>

                <div class="carousel-item">
                  <img class="img-carousel d-block w-100"
                      src="https://via.placeholder.com/150"
                      alt="Second slide">
                </div>

                <div class="carousel-item">
                  <img class="img-carousel d-block w-100"
                      src="https://via.placeholder.com/150"
                      alt="Third slide">
                </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>

          </div>
        </div>
      </div>

    <!-- ======================================================================== -->
    <!-- EO CAROUSSEL -->
    <!-- ======================================================================== -->

  <!-- Scripts tags -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<!-- JS, Popper.js, and jQuery -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
</body>
</html>


推荐阅读