6

Standard bootstrap carousel can contains dots to change slides (example on bootstrap page).

However, I recently read Why Users Aren't Clicking Your Home Page Carousel which proposed using captions instead of dots like below:

example

Is this option possible in bootstrap? If so, how can I do so?

KyleMit
  • 30,350
  • 66
  • 462
  • 664
Piotr Stapp
  • 19,392
  • 11
  • 68
  • 116
  • To answer your question, yes it is *possible*, but you'll have to write some code to do it. What have you tried? – KyleMit May 07 '14 at 12:03
  • @KyleMit the question should be: were should I make changes to have such effect. I didn't write any code because I don't know where should I start. I don't want to change bootstrap.js – Piotr Stapp May 07 '14 at 12:10

1 Answers1

14

You can doing this by just overriding the styles on the carousel-indicators list items.

Here's a typical indicators section:

<ul class="carousel-indicators">
  <li data-target="#myCarousel" data-slide-to="0" class="active">One</li>
  <li data-target="#myCarousel" data-slide-to="1">Two</li>
  <li data-target="#myCarousel" data-slide-to="2">Three</li>
</ul>

You'll want to override some of the default Bootstrap styles:

Convert the display from dots to rectangles by adding a width and height and removing the border-radius:

demo 1

Then get the text back by removing the negative text-indent added by Bootstrap:

demo 2

Finally, add your own background and border and style however else you like.
The full styling should look like this:

.carousel-indicators > li,
.carousel-indicators > li.active{
    width: 100px;
    height: 25px;
    border-radius: 0;
    border: solid 1px grey;
    background: lightgrey;
    text-indent: 0;
}
.carousel-indicators > li.active {
    background: white;
}

Working Demo in Fiddle

screenshot


You could even wrap the entire bit of CSS inside of a media query so that when screen size became limited, you defaulted back to the dots instead of awkwardly stacking the list items:

@media screen and (min-width: 550px) {
    /* Wrap CSS Here */
}

Responsive Demo in Fiddle

KyleMit
  • 30,350
  • 66
  • 462
  • 664