Lesson 29 +10 XP

Carousel

Carousel

A carousel (or slideshow) cycles through images or content. It needs the Bootstrap JavaScript bundle to work.

Basic carousel

<div id="demo" class="carousel slide" data-bs-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="img1.jpg" alt="First slide">
    </div>
    <div class="carousel-item">
      <img src="img2.jpg" alt="Second slide">
    </div>
  </div>
</div>

The key classes

  • .carousel is the base class.
  • .slide adds a sliding transition.
  • .carousel-inner wraps the items.
  • .carousel-item is each slide.
  • .active marks the first visible slide.
  • data-bs-ride="carousel" makes it auto-play.

Indicators and controls

Indicators (the little dots) and controls (the prev/next arrows) let users navigate:

<div id="demo" class="carousel slide" data-bs-ride="carousel">
  <div class="carousel-indicators">
    <button type="button" data-bs-target="#demo" data-bs-slide-to="0" class="active"></button>
    <button type="button" data-bs-target="#demo" data-bs-slide-to="1"></button>
  </div>

  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="img1.jpg" alt="First slide">
    </div>
    <div class="carousel-item">
      <img src="img2.jpg" alt="Second slide">
    </div>
  </div>

  <button class="carousel-control-prev" type="button" data-bs-target="#demo" data-bs-slide="prev">
    <span class="carousel-control-prev-icon"></span>
  </button>
  <button class="carousel-control-next" type="button" data-bs-target="#demo" data-bs-slide="next">
    <span class="carousel-control-next-icon"></span>
  </button>
</div>

Captions

Use .carousel-caption inside an item to add a caption:

<div class="carousel-item active">
  <img src="img1.jpg" alt="First slide">
  <div class="carousel-caption">
    <h3>First Slide</h3>
    <p>Some text for this slide.</p>
  </div>
</div>

TL;DR

  • Carousels need the JS bundle.
  • .carousel slide + .carousel-item active build slides.
  • Indicators are dots, controls are arrows.
  • data-bs-ride="carousel" enables auto-play.
  • .carousel-caption adds text captions.