A carousel lets you show multiple images or content in one place by sliding them left or right. It saves space and makes your page look neat.
Carousel slides and controls in Bootsrap
<div id="carouselExample" class="carousel slide" data-bs-ride="carousel"> <div class="carousel-inner"> <div class="carousel-item active"> <!-- Slide content here --> </div> <div class="carousel-item"> <!-- Slide content here --> </div> <!-- More slides --> </div> <button class="carousel-control-prev" type="button" data-bs-target="#carouselExample" data-bs-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button> <button class="carousel-control-next" type="button" data-bs-target="#carouselExample" data-bs-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button> </div>
The carousel-inner holds all slides.
Only one carousel-item should have the active class to show first.
active class shows it first.<div class="carousel-item active"> <img src="image1.jpg" class="d-block w-100" alt="First slide"> </div>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExample" data-bs-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
<div id="carouselExample" class="carousel slide" data-bs-ride="carousel"> <!-- slides and controls here --> </div>
This example creates a simple carousel with three slides. Each slide shows a placeholder image with text. The left and right buttons let you move between slides. The carousel also starts sliding automatically.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap Carousel Example</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <main class="container mt-5"> <h1>Simple Image Carousel</h1> <div id="carouselExample" class="carousel slide" data-bs-ride="carousel" aria-label="Image Carousel"> <div class="carousel-inner"> <div class="carousel-item active"> <img src="https://via.placeholder.com/800x400?text=Slide+1" class="d-block w-100" alt="Slide 1"> </div> <div class="carousel-item"> <img src="https://via.placeholder.com/800x400?text=Slide+2" class="d-block w-100" alt="Slide 2"> </div> <div class="carousel-item"> <img src="https://via.placeholder.com/800x400?text=Slide+3" class="d-block w-100" alt="Slide 3"> </div> </div> <button class="carousel-control-prev" type="button" data-bs-target="#carouselExample" data-bs-slide="prev" aria-label="Previous Slide"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button> <button class="carousel-control-next" type="button" data-bs-target="#carouselExample" data-bs-slide="next" aria-label="Next Slide"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button> </div> </main> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> </body> </html>
Always add alt text to images for accessibility.
Use aria-label and visually-hidden classes to help screen readers understand controls.
Make sure only one slide has the active class at a time.
A carousel shows multiple slides in one space by sliding them.
Use carousel-inner for slides and carousel-control-prev/next for navigation buttons.
Bootstrap handles the sliding animation and controls automatically.
Practice
.carousel-control-prev and .carousel-control-next classes in a Bootstrap carousel?Solution
Step 1: Understand carousel controls
The classes.carousel-control-prevand.carousel-control-nextare used to create navigation buttons on the left and right sides of the carousel.Step 2: Identify their function
These buttons allow users to manually move the slides backward (previous) or forward (next) in the carousel.Final Answer:
They create buttons to move slides backward and forward. -> Option DQuick Check:
Carousel controls = navigation buttons [OK]
- Confusing controls with indicators
- Thinking controls add captions
- Assuming controls start animation automatically
Solution
Step 1: Check Bootstrap 5 control button syntax
The correct control button usesbuttonwith classcarousel-control-prev, attributesdata-bs-targetanddata-bs-slide="prev", and includes an icon span and a visually hidden label for accessibility.Step 2: Compare options
Previous matches the official Bootstrap 5 syntax exactly. Other options use incorrect classes, tags, or attributes.Final Answer:
Option A is the correct Bootstrap 5 previous control button structure. -> Option AQuick Check:
Bootstrap 5 controls usebuttonwithdata-bs-slide[OK]
- Using old Bootstrap 4 attributes like data-slide
- Missing aria-hidden or visually-hidden spans
- Using wrong element tags like <a> or <div>
<div id="carouselExample" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">Slide 1</div>
<div class="carousel-item">Slide 2</div>
<div class="carousel-item">Slide 3</div>
</div>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExample" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>Solution
Step 1: Identify the active slide and next button action
The active slide is Slide 1. The next button hasdata-bs-slide="next"and targets the carousel by ID.Step 2: Understand carousel behavior on next click
Clicking next moves the carousel forward by one slide, so it moves from Slide 1 to Slide 2.Final Answer:
The carousel will move from Slide 1 to Slide 2. -> Option AQuick Check:
Next button moves one slide forward [OK]
- Thinking next jumps to last slide
- Assuming missing target disables button
- Confusing next with restart behavior
<button class="carousel-control-prev" type="button" data-bs-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
Solution
Step 1: Check required attributes for carousel controls
Bootstrap carousel control buttons must havedata-bs-targetto link the button to the carousel's ID.Step 2: Identify missing attribute in the code
The given button lacksdata-bs-target="#carouselID", so it cannot control any carousel.Final Answer:
Missingdata-bs-targetattribute to specify the carousel ID. -> Option CQuick Check:
Controls need data-bs-target to work [OK]
- Omitting data-bs-target attribute
- Using wrong class names
- Confusing button with anchor tag requirement
<div id="myCarousel" class="carousel slide" ... >
<div class="carousel-inner">
<div class="carousel-item active">Slide 1</div>
<div class="carousel-item">Slide 2</div>
<div class="carousel-item">Slide 3</div>
<div class="carousel-item">Slide 4</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#myCarousel" data-bs-slide="prev">...</button>
<button class="carousel-control-next" type="button" data-bs-target="#myCarousel" data-bs-slide="next">...</button>
</div>Solution
Step 1: Enable automatic cycling and looping
Addingdata-bs-ride="carousel"starts the carousel automatically and enables looping by default.Step 2: Ensure controls target the correct carousel
Controls must havedata-bs-target="#myCarousel"anddata-bs-slideattributes to move slides properly.Step 3: Understand looping behavior
Bootstrap carousels loop infinitely by default whendata-bs-ride="carousel"is present, so no extra attribute is needed to enable looping.Final Answer:
Add data-bs-ride="carousel" to the main div; controls with correct data-bs-target enable infinite looping. -> Option BQuick Check:
data-bs-ride="carousel" + correct controls = infinite loop [OK]
- Using data-bs-wrap="false" disables looping
- Assuming controls loop without data-bs-ride
- Setting data-bs-interval="false" stops auto sliding
Ready to prove it?
Pass the test and this pattern moves unknown
