.carousel {
position: relative;
- line-height: 1;
}
.carousel-inner {
top: 0;
bottom: 0;
left: 0;
- width: 120px;
+ width: 15%;
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
opacity: 0.5;
filter: alpha(opacity=50);
}
.carousel-control.left {
- background-color: rgba(0, 0, 0, 0.001);
+ background-color: rgba(0, 0, 0, 0.0001);
background-color: transparent;
- background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.001));
- background-image: -webkit-gradient(linear, 0 0, 100% 0, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.001)));
- background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.001));
- background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.001));
- background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.001));
+ background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.0001));
+ background-image: -webkit-gradient(linear, 0 0, 100% 0, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.0001));
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.0001));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.0001));
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
left: auto;
background-color: rgba(0, 0, 0, 0.5);
background-color: transparent;
- background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.001), rgba(0, 0, 0, 0.5));
- background-image: -webkit-gradient(linear, 0 0, 100% 0, from(rgba(0, 0, 0, 0.001)), to(rgba(0, 0, 0, 0.5)));
- background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.001), rgba(0, 0, 0, 0.5));
- background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.001), rgba(0, 0, 0, 0.5));
- background-image: linear-gradient(to right, rgba(0, 0, 0, 0.001), rgba(0, 0, 0, 0.5));
+ background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001), rgba(0, 0, 0, 0.5));
+ background-image: -webkit-gradient(linear, 0 0, 100% 0, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001), rgba(0, 0, 0, 0.5));
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001), rgba(0, 0, 0, 0.5));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001), rgba(0, 0, 0, 0.5));
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
filter: alpha(opacity=90);
}
-.carousel-control .carousel-control .glyphicon-chevron-left,
-.carousel-control .carousel-control .glyphicon-chevron-right {
+.carousel-control .glyphicon {
position: absolute;
top: 50%;
+ left: 50%;
z-index: 5;
display: inline-block;
width: 20px;
height: 20px;
margin-top: -10px;
- margin-left: 20px;
- font-size: 20px;
- color: #fff;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
-}
-
-.carousel-control .carousel-control .glyphicon-chevron-right {
- margin-left: 80px;
+ margin-left: -10px;
}
.carousel-indicators {
position: absolute;
- bottom: 15px;
+ bottom: 20px;
left: 50%;
z-index: 5;
width: 100px;
background-color: #fff;
}
+.carousel-caption {
+ position: absolute;
+ right: 20%;
+ bottom: 20px;
+ left: 20%;
+ display: none;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+
@media screen and (min-width: 768px) {
- .carousel-control .glyphicon-chevron-left,
- .carousel-control .glyphicon-chevron-right {
+ .carousel-control .glyphicon {
width: 30px;
height: 30px;
margin-top: -15px;
- margin-left: 30px;
+ margin-left: -15px;
font-size: 30px;
}
- .carousel-control .glyphicon-chevron-right {
- margin-left: 70px;
+ .carousel-caption {
+ right: 0;
+ left: 0;
+ z-index: 10;
+ display: block;
+ max-width: 60%;
+ padding: 30px;
+ margin-right: 0;
+ margin-left: 0;
+ text-align: left;
}
}
<h1>Carousel <small>bootstrap-carousel.js</small></h1>
</div>
- <h2>Example carousel</h2>
+ <h2>Examples</h2>
<p>The slideshow below shows a generic plugin and component for cycling through elements like a carousel.</p>
<div class="bs-docs-example">
- <div id="myCarousel" class="carousel slide">
+ <div class="carousel slide bs-docs-carousel-example">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
</div>
</div><!-- /example -->
{% highlight html linenos %}
-<div id="myCarousel" class="carousel slide">
+<div class="carousel slide">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<!-- Controls -->
<a class="left carousel-control" href="#myCarousel" data-slide="prev">
- <span class="control">‹</span>
+ <span class="glyphicon glyphicon-chevron-left"></span>
</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next">
- <span class="control">›</span>
+ <span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
{% endhighlight %}
- <div class="alert alert-warning">
- <strong>Heads up!</strong>
- When implementing this carousel, remove the images we have provided and replace them with your own.
- </div>
+ <h3>Optional captions</h3>
+ <p>Add captions to your slides easily with the <code>.carousel-caption</code> element within any <code>.item</code>. Place just about any optional HTML within there and it will be automatically aligned and formatted.</p>
+ <div class="bs-docs-example">
+ <div class="carousel slide bs-docs-carousel-example">
+ <ol class="carousel-indicators">
+ <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
+ <li data-target="#myCarousel" data-slide-to="1"></li>
+ <li data-target="#myCarousel" data-slide-to="2"></li>
+ </ol>
+ <div class="carousel-inner">
+ <div class="item active">
+ <img data-src="holder.js/900x500/auto/#777:#777" alt="">
+ <div class="carousel-caption">
+ <h3>First slide label</h3>
+ <p>Nulla vitae elit libero, a pharetra augue. Maecenas faucibus mollis interdum. Cum sociis natoque penatibus et magnis dis parturient montes.</p>
+ </div>
+ </div>
+ <div class="item">
+ <img data-src="holder.js/900x500/auto/#777:#777" alt="">
+ <div class="carousel-caption">
+ <h3>Second slide label</h3>
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean lacinia bibendum nulla sed consectetur. Nullam quis risus eget urna mollis ornare.</p>
+ </div>
+ </div>
+ <div class="item">
+ <img data-src="holder.js/900x500/auto/#777:#777" alt="">
+ <div class="carousel-caption">
+ <h3>Third slide label</h3>
+ <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.</p>
+ </div>
+ </div>
+ </div>
+ <a class="left carousel-control" href="#myCarousel" data-slide="prev">
+ <span class="glyphicon glyphicon-chevron-left"></span>
+ </a>
+ <a class="right carousel-control" href="#myCarousel" data-slide="next">
+ <span class="glyphicon glyphicon-chevron-right"></span>
+ </a>
+ </div>
+ </div><!-- /example -->
+{% highlight html linenos %}
+<div class="item active">
+ <img src="..." alt="">
+ <div class="carousel-caption">
+ <h3>...</h3>
+ <p>...</p>
+ </div>
+</div>
+{% endhighlight %}
+
<hr class="bs-docs-separator">
// Wrapper for the slide container and indicators
.carousel {
position: relative;
- line-height: 1;
}
// Wrap all slides, but only show the active one
top: 0;
left: 0;
bottom: 0;
- width: 120px;
+ width: 15%;
.opacity(50);
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0,0,0,.6);
// we can't have this transition here
// because webkit cancels the carousel
// Set gradients for backgrounds
&.left {
- #gradient > .horizontal(rgba(0,0,0,.5), rgba(0,0,0,.001));
+ #gradient > .horizontal(rgba(0,0,0,.5), rgba(0,0,0,.0001));
background-color: transparent;
}
&.right {
left: auto;
right: 0;
- #gradient > .horizontal(rgba(0,0,0,.001), rgba(0,0,0,.5));
+ #gradient > .horizontal(rgba(0,0,0,.0001), rgba(0,0,0,.5));
background-color: transparent;
}
}
// Toggles
- .carousel-control .glyphicon-chevron-left,
- .carousel-control .glyphicon-chevron-right {
+ .glyphicon {
position: absolute;
top: 50%;
+ left: 50%;
z-index: 5;
display: inline-block;
width: 20px;
height: 20px;
margin-top: -10px;
- margin-left: 20px;
- font-size: 20px;
- color: #fff;
- text-shadow: 0 1px 2px rgba(0,0,0,.6);
- }
- .carousel-control .glyphicon-chevron-right {
- margin-left: 80px;
+ margin-left: -10px;
}
}
-// Carousel indicator pips
+// Optional indicator pips
// -----------------------------
.carousel-indicators {
position: absolute;
- bottom: 15px;
+ bottom: 20px;
left: 50%;
z-index: 5;
width: 100px;
}
}
+// Optional captions
+// -----------------------------
+// Hidden by default for smaller viewports
+.carousel-caption {
+ position: absolute;
+ left: 20%;
+ right: 20%;
+ bottom: 20px;
+ display: none;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0,0,0,.6);
+}
+
// Scale up controls for >768px
@media screen and (min-width: 768px) {
- .carousel-control .glyphicon-chevron-left,
- .carousel-control .glyphicon-chevron-right {
+ // Scale up the controls a smidge
+ .carousel-control .glyphicon {
width: 30px;
height: 30px;
margin-top: -15px;
- margin-left: 30px;
+ margin-left: -15px;
font-size: 30px;
}
- .carousel-control .glyphicon-chevron-right {
- margin-left: 70px;
- }
+ // Show and left align the captions
+ .carousel-caption {
+ left: 0;
+ right: 0;
+ z-index: 10;
+ display: block;
+ max-width: 60%;
+ padding: 30px;
+ margin-left: 0;
+ margin-right: 0;
+ text-align: left;
+ }
}