In modern web design, carousels (or image sliders) are a popular way to showcase multiple pieces of content in a limited space. Whether you’re highlighting featured products, displaying testimonials, or creating a dynamic banner, Bootstrap 5 makes it easy to build responsive and visually appealing carousels. In this guide, we’ll walk you through the process of creating a Bootstrap 5 carousel from scratch, complete with explanations and best practices.
What is a Bootstrap Carousel?
A Bootstrap carousel is a slideshow component that cycles through a series of content (images, text, or both) with smooth transitions. It’s fully responsive, customizable, and works seamlessly across devices. Bootstrap 5 simplifies the process of creating carousels with its built-in classes and JavaScript functionality.
Why Use a Bootstrap Carousel?
- Responsive Design: Automatically adjusts to different screen sizes.
- User-Friendly: Includes navigation controls (previous/next buttons) and indicators for easy navigation.
- Customizable: Add captions, animations, and more to suit your design needs.
- Cross-Browser Compatibility: Works consistently across all major browsers.
Step-by-Step Guide to Creating a Bootstrap 5 Carousel
1. Set Up Your HTML File
Start by creating a basic HTML file and include the Bootstrap 5 CSS and JS files via CDN:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Bootstrap 5 Carousel Example</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script> </head> <body>
2. Carousel Container
<div id="carouselExample" class="carousel slide" data-bs-ride="carousel">
<div>: The container for the carousel.id="carouselExample": A unique identifier for the carousel, used to link controls and indicators.class="carousel slide": Applies Bootstrap’s carousel styling and enables the sliding animation.data-bs-ride="carousel": Automatically starts the carousel sliding when the page loads.
3. Carousel Indicators
<div class="carousel-indicators"> <button type="button" data-bs-target="#carouselExample" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button> <button type="button" data-bs-target="#carouselExample" data-bs-slide-to="1" aria-label="Slide 2"></button> <button type="button" data-bs-target="#carouselExample" data-bs-slide-to="2" aria-label="Slide 3"></button> </div>
<div class="carousel-indicators">: A container for the carousel indicators (small dots at the bottom of the carousel).- Each
<button>represents an indicator for a specific slide.data-bs-target="#carouselExample": Links the button to the carousel container.data-bs-slide-to="0": Specifies which slide the button corresponds to (0-based index).class="active": Marks the first indicator as active (default slide).aria-label: Provides an accessible label for screen readers.
4. Carousel Slides
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://placehold.co/1200x600" class="d-block w-100" alt="Banner 1">
<div class="carousel-caption d-none d-md-block">
<h5>First Slide</h5>
<p>This is the first slide description.</p>
</div>
</div>
<div class="carousel-item">
<img src="https://placehold.co/1200x600" class="d-block w-100" alt="Banner 2">
<div class="carousel-caption d-none d-md-block">
<h5>Second Slide</h5>
<p>This is the second slide description.</p>
</div>
</div>
<div class="carousel-item">
<img src="https://placehold.co/1200x600" class="d-block w-100" alt="Banner 3">
<div class="carousel-caption d-none d-md-block">
<h5>Third Slide</h5>
<p>This is the third slide description.</p>
</div>
</div>
</div>
<div class="carousel-inner">: The container for all carousel slides.- Each
<div class="carousel-item">represents a single slide.class="active": Marks the first slide as active (default slide).<img>: Displays the slide image.src="https://placehold.co/1200x600": Uses a placeholder image URL.class="d-block w-100": Ensures the image is displayed as a block element and spans the full width of the carousel.alt: Provides alternative text for accessibility.
<div class="carousel-caption">: Adds a caption to the slide.d-none d-md-block: Hides the caption on small screens and displays it on medium and larger screens.
5. Carousel Controls
<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>
<button class="carousel-control-prev">: The “Previous” button.data-bs-target="#carouselExample": Links the button to the carousel container.data-bs-slide="prev": Moves to the previous slide when clicked.<span class="carousel-control-prev-icon">: Displays the “Previous” icon.<span class="visually-hidden">: Provides an accessible label for screen readers.
<button class="carousel-control-next">: The “Next” button.data-bs-target="#carouselExample": Links the button to the carousel container.data-bs-slide="next": Moves to the next slide when clicked.<span class="carousel-control-next-icon">: Displays the “Next” icon.<span class="visually-hidden">: Provides an accessible label for screen readers.
Summary
This code creates a fully functional Bootstrap carousel with:
- Indicators: Dots to navigate between slides.
- Slides: Three slides with images and captions.
- Controls: “Previous” and “Next” buttons for manual navigation.
- Responsive Design: Captions are hidden on small screens for better usability.
You can customize the carousel by replacing the placeholder images and text, or by adding more slides as needed.



[…] Detailed Explaination […]
Output:
https://rephel-0101.github.io/bs5/carousel.html