Bird
Raised Fist0
Bootsrapmarkup~20 mins

Carousel slides and controls in Bootsrap - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Carousel Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ rendering
intermediate
1:30remaining
Identify the active slide in a Bootstrap carousel
Given the following Bootstrap carousel HTML snippet, which slide will be visible first when the page loads?
Bootsrap
<div id="carouselExample" class="carousel slide" data-bs-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item">
      <img src="slide1.jpg" class="d-block w-100" alt="Slide 1">
    </div>
    <div class="carousel-item active">
      <img src="slide2.jpg" class="d-block w-100" alt="Slide 2">
    </div>
    <div class="carousel-item">
      <img src="slide3.jpg" class="d-block w-100" alt="Slide 3">
    </div>
  </div>
</div>
ASlide 2 will be visible first because it has the class 'active'.
BNo slide will be visible because none have the 'show' class.
CSlide 3 will be visible first because it is the last item in the list.
DSlide 1 will be visible first because it is the first item in the list.
Attempts:
2 left
💡 Hint
Look for the 'active' class inside the carousel items.
📝 Syntax
intermediate
1:30remaining
Which code correctly adds previous and next controls to a Bootstrap carousel?
You want to add controls to navigate slides in a Bootstrap carousel. Which option correctly implements the previous and next buttons?
A
&lt;button class="carousel-prev" type="button" data-target="#carouselExample" data-slide="prev"&gt;
  &lt;span class="carousel-prev-icon"&gt;&lt;/span&gt;
&lt;/button&gt;
&lt;button class="carousel-next" type="button" data-target="#carouselExample" data-slide="next"&gt;
  &lt;span class="carousel-next-icon"&gt;&lt;/span&gt;
&lt;/button&gt;
B
&lt;button class="carousel-control-prev" type="button" data-bs-target="#carouselExample" data-bs-slide="prev"&gt;
  &lt;span class="carousel-control-prev-icon" aria-hidden="true"&gt;&lt;/span&gt;
  &lt;span class="visually-hidden"&gt;Previous&lt;/span&gt;
&lt;/button&gt;
&lt;button class="carousel-control-next" type="button" data-bs-target="#carouselExample" data-bs-slide="next"&gt;
  &lt;span class="carousel-control-next-icon" aria-hidden="true"&gt;&lt;/span&gt;
  &lt;span class="visually-hidden"&gt;Next&lt;/span&gt;
&lt;/button&gt;
C
&lt;a class="carousel-control-prev" href="#carouselExample" role="button" data-slide="prev"&gt;
  &lt;span class="carousel-control-prev-icon" aria-hidden="true"&gt;&lt;/span&gt;
  &lt;span class="sr-only"&gt;Previous&lt;/span&gt;
&lt;/a&gt;
&lt;a class="carousel-control-next" href="#carouselExample" role="button" data-slide="next"&gt;
  &lt;span class="carousel-control-next-icon" aria-hidden="true"&gt;&lt;/span&gt;
  &lt;span class="sr-only"&gt;Next&lt;/span&gt;
&lt;/a&gt;
D
&lt;button class="carousel-control-prev" type="button" data-bs-target="#carouselExample" data-bs-slide="previous"&gt;
  &lt;span class="carousel-control-prev-icon" aria-hidden="true"&gt;&lt;/span&gt;
  &lt;span class="visually-hidden"&gt;Previous&lt;/span&gt;
&lt;/button&gt;
&lt;button class="carousel-control-next" type="button" data-bs-target="#carouselExample" data-bs-slide="next"&gt;
  &lt;span class="carousel-control-next-icon" aria-hidden="true"&gt;&lt;/span&gt;
  &lt;span class="visually-hidden"&gt;Next&lt;/span&gt;
&lt;/button&gt;
Attempts:
2 left
💡 Hint
Check the attribute names and values for Bootstrap 5 controls.
❓ selector
advanced
1:30remaining
Which CSS selector targets only the active slide in a Bootstrap carousel?
You want to style only the currently visible slide in a Bootstrap carousel. Which CSS selector will select only the active slide?
A.carousel .active-item
B.carousel-item:active
C.carousel-item > .active
D.carousel-item.active
Attempts:
2 left
💡 Hint
Look for the class that Bootstrap adds to the visible slide.
❓ layout
advanced
1:30remaining
How to make carousel images fully responsive and cover the slide area?
You want carousel images to fill the entire slide area without distortion and keep their aspect ratio. Which CSS approach achieves this best?
AUse <code>max-width: 100%; max-height: 100%;</code> on images.
BUse <code>width: 100%; height: auto;</code> on images.
CUse <code>object-fit: cover; width: 100%; height: 100%;</code> on images.
DUse <code>float: left; width: 100%;</code> on images.
Attempts:
2 left
💡 Hint
Think about how to crop images to fill a container while preserving aspect ratio.
❓ accessibility
expert
2:00remaining
Which attribute improves screen reader accessibility for carousel controls?
Bootstrap carousel controls include icons but no visible text. Which attribute and element combination ensures screen readers announce the control purpose correctly?
AAdd <code>aria-label="Previous slide"</code> to the control button and include a <code>&lt;span class="visually-hidden"&gt;Previous&lt;/span&gt;</code> inside.
BAdd <code>title="Previous"</code> to the control button only.
CAdd <code>alt="Previous"</code> to the icon span inside the button.
DAdd <code>role="button"</code> to the icon span inside the button.
Attempts:
2 left
💡 Hint
Screen readers need hidden descriptive text or aria-labels on interactive elements.

Practice

(1/5)
1. What is the main purpose of the .carousel-control-prev and .carousel-control-next classes in a Bootstrap carousel?
easy
A. They automatically start the carousel animation.
B. They style the carousel indicators at the bottom.
C. They add captions to each slide.
D. They create buttons to move slides backward and forward.

Solution

  1. Step 1: Understand carousel controls

    The classes .carousel-control-prev and .carousel-control-next are used to create navigation buttons on the left and right sides of the carousel.
  2. Step 2: Identify their function

    These buttons allow users to manually move the slides backward (previous) or forward (next) in the carousel.
  3. Final Answer:

    They create buttons to move slides backward and forward. -> Option D
  4. Quick Check:

    Carousel controls = navigation buttons [OK]
Hint: Controls always move slides left or right [OK]
Common Mistakes:
  • Confusing controls with indicators
  • Thinking controls add captions
  • Assuming controls start animation automatically
2. Which of the following is the correct HTML structure to add a previous control button in a Bootstrap 5 carousel?
easy
A. Previous
B.
Prev
C. Prev
D. Back

Solution

  1. Step 1: Check Bootstrap 5 control button syntax

    The correct control button uses button with class carousel-control-prev, attributes data-bs-target and data-bs-slide="prev", and includes an icon span and a visually hidden label for accessibility.
  2. Step 2: Compare options

    Previous matches the official Bootstrap 5 syntax exactly. Other options use incorrect classes, tags, or attributes.
  3. Final Answer:

    Option A is the correct Bootstrap 5 previous control button structure. -> Option A
  4. Quick Check:

    Bootstrap 5 controls use button with data-bs-slide [OK]
Hint: Look for data-bs-slide="prev" and correct classes [OK]
Common Mistakes:
  • Using old Bootstrap 4 attributes like data-slide
  • Missing aria-hidden or visually-hidden spans
  • Using wrong element tags like <a> or <div>
3. Given this Bootstrap carousel snippet, what will happen when the user clicks the next control button?
<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>
medium
A. The carousel will move from Slide 1 to Slide 2.
B. The carousel will jump directly to Slide 3.
C. Nothing will happen because the next button is missing the target.
D. The carousel will restart from Slide 1.

Solution

  1. Step 1: Identify the active slide and next button action

    The active slide is Slide 1. The next button has data-bs-slide="next" and targets the carousel by ID.
  2. 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.
  3. Final Answer:

    The carousel will move from Slide 1 to Slide 2. -> Option A
  4. Quick Check:

    Next button moves one slide forward [OK]
Hint: Next button moves active slide forward by one [OK]
Common Mistakes:
  • Thinking next jumps to last slide
  • Assuming missing target disables button
  • Confusing next with restart behavior
4. This Bootstrap carousel control button does not work as expected. What is the error?
<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>
medium
A. The button tag should be an anchor <a> tag.
B. Wrong class name; should be carousel-prev-control.
C. Missing data-bs-target attribute to specify the carousel ID.
D. Missing aria-label attribute on the button.

Solution

  1. Step 1: Check required attributes for carousel controls

    Bootstrap carousel control buttons must have data-bs-target to link the button to the carousel's ID.
  2. Step 2: Identify missing attribute in the code

    The given button lacks data-bs-target="#carouselID", so it cannot control any carousel.
  3. Final Answer:

    Missing data-bs-target attribute to specify the carousel ID. -> Option C
  4. Quick Check:

    Controls need data-bs-target to work [OK]
Hint: Always include data-bs-target with carousel ID [OK]
Common Mistakes:
  • Omitting data-bs-target attribute
  • Using wrong class names
  • Confusing button with anchor tag requirement
5. You want to create a Bootstrap carousel with 4 slides and add controls that loop infinitely. Which combination of attributes and classes ensures the carousel loops and controls work correctly?
<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>
hard
A. Add data-bs-interval="false" to stop auto sliding; controls loop automatically.
B. Add data-bs-ride="carousel" to the main div; controls with correct data-bs-target enable infinite looping.
C. Add data-bs-wrap="false" to disable looping; controls will loop slides.
D. No extra attributes needed; controls loop slides by default.

Solution

  1. Step 1: Enable automatic cycling and looping

    Adding data-bs-ride="carousel" starts the carousel automatically and enables looping by default.
  2. Step 2: Ensure controls target the correct carousel

    Controls must have data-bs-target="#myCarousel" and data-bs-slide attributes to move slides properly.
  3. Step 3: Understand looping behavior

    Bootstrap carousels loop infinitely by default when data-bs-ride="carousel" is present, so no extra attribute is needed to enable looping.
  4. Final Answer:

    Add data-bs-ride="carousel" to the main div; controls with correct data-bs-target enable infinite looping. -> Option B
  5. Quick Check:

    data-bs-ride="carousel" + correct controls = infinite loop [OK]
Hint: Use data-bs-ride="carousel" for looping with controls [OK]
Common Mistakes:
  • Using data-bs-wrap="false" disables looping
  • Assuming controls loop without data-bs-ride
  • Setting data-bs-interval="false" stops auto sliding
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard