0

I'm trying to create a carousel slider with carousel indicators at the bottom using Bootstrap-4.1.3. The problem is that the carousel indicators are invisible, but they do work when you click them.

I've already tried z-index, and background colors on the indicators, but they don't seem to work.

Here is my code:

.carousel-indicators {
  z-index: 3;
  #slide-buttons {
    background-color: #999 !important;
    background-color: rgba(70, 70, 70, .25) !important;
  }
  .active {
    background-color: #444 !important;
  }
}
<div class="carousel slide col-9 mx-auto pt-5 position-relative" data-ride="carousel" id="slides">

  <!--Carousel Content-->
  <div class="carousel-content carousel-inner" role="listbox">
    <div class="slide-1 col-12 carousel-item active" id="slide1">
      <h5>Example</h5>
    </div>

    <div class="slide-2 col-12 carousel-item" id="slide2">
      <h5>Example</h5>
    </div>

    <div class="slide-3 col-12 carousel-item" id="slide3">
      <h5>Example</h5>
    </div>
  </div>

  <!-- Carousel Indicators -->
  <ul class="carousel-indicators mt-5 pt-5 ">
    <li data-target="#slides" id="slides-buttons" data-slide-to="0" class="active"></li>
    <li data-target="#slides" id="slides-buttons" data-slide-to="1" class=" "></li>
    <li data-target="#slides" id="slides-buttons" data-slide-to="2" class=" "></li>
  </ul>
</div>

4

4 回答 4

1

You should not use the same id multiple times on your page. Try using this solution instead:

.carousel .carousel-indicators li {
  background-color: red;
}

.carousel .carousel-indicators li.active {
  background-color: blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/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">
      <img class="d-block w-100" src="https://cdn.pixabay.com/photo/2016/06/18/17/42/image-1465348_1280.jpg" alt="First slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src="https://cdn.pixabay.com/photo/2016/06/18/17/42/image-1465348_1280.jpg" alt="Second slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src="https://cdn.pixabay.com/photo/2016/06/18/17/42/image-1465348_1280.jpg" 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>

于 2019-01-28T16:05:08.920 回答
0

There is a typepo error in your code css id. 'slides-buttons' and '#slide-buttons

于 2019-01-28T15:08:57.433 回答
0

Based on Cristiano Soares solution, I have also added some further suggestions.

To ensure that the main carousel component wrapper has indicators set to active;

<Carousel indicators={true} .... <Item><ProjectImg><Caption> ... >

I also added further styling, as I still couldn't see the indicators once they where enabled;

.carousel-indicators li {
  background-color: red;
  height: 5px;
  width: 20px;
  z-index: 5 !important;
  margin: 0 5px;
  cursor: pointer;
}
.carousel-indicators li.active {
  background-color: blue;
  height: 5px;
  width: 20px;
  z-index: 5 !important;
  padding: 0 5px;
  cursor: pointer;
}

indicators example

于 2021-07-15T19:31:51.750 回答
0

I had the same problem with bootstrap 4. Then i figured display of indicators is none. so this fixed my problem:

.carousel-indicators{
display: block !important;}
于 2022-01-29T09:30:58.163 回答