]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Re-add carousel captions as optional
authorMark Otto <otto@github.com>
Sat, 16 Feb 2013 10:47:15 +0000 (02:47 -0800)
committerMark Otto <otto@github.com>
Sat, 16 Feb 2013 10:47:15 +0000 (02:47 -0800)
* They're hidden by default in the mobile-first views because otherwise they just cover up the slides
* In mobile they're centered, and then are shown left aligned at larger viewports

docs/assets/css/bootstrap.css
docs/assets/js/application.js
docs/javascript.html
less/carousel.less

index 3ac4cf8e69215f13506516d5f00dd9816ddec4f2..6797b4dc90acf7963cd4d97c4550a24fb25be8a6 100644 (file)
@@ -4437,7 +4437,6 @@ a.counter:focus {
 
 .carousel {
   position: relative;
-  line-height: 1;
 }
 
 .carousel-inner {
@@ -4504,19 +4503,23 @@ a.counter:focus {
   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);
 }
@@ -4526,11 +4529,11 @@ a.counter:focus {
   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);
 }
@@ -4543,28 +4546,21 @@ a.counter:focus {
   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;
@@ -4589,17 +4585,37 @@ a.counter:focus {
   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;
   }
 }
 
index f880bc05d53f261e2838c0b4f1ef995f85753bd1..dfe1271648cd655d7b7a7326c581c4af9b1c6273 100644 (file)
@@ -67,7 +67,7 @@
       })
 
     // carousel demo
-    $('#myCarousel').carousel()
+    $('.bs-docs-carousel-example').carousel()
 
     // javascript build logic
     var inputsComponent = $("#components.download input")
index 0b3fc3e423ac27091d2101a58cbc5331579bd50e..b79402491d9904d400f99abaaa2e9a16783ea03c 100644 (file)
@@ -1470,10 +1470,10 @@ $('#myCollapsible').on('hidden', function () {
               <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>
@@ -1499,7 +1499,7 @@ $('#myCollapsible').on('hidden', function () {
               </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>
@@ -1520,18 +1520,64 @@ $('#myCollapsible').on('hidden', function () {
 
   <!-- Controls -->
   <a class="left carousel-control" href="#myCarousel" data-slide="prev">
-    <span class="control">&lsaquo;</span>
+    <span class="glyphicon glyphicon-chevron-left"></span>
   </a>
   <a class="right carousel-control" href="#myCarousel" data-slide="next">
-    <span class="control">&rsaquo;</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">
index 167ee52ec64432cb2ae6fbeacaf5c15fe5de4f54..e3547573bd893bbae540115c8554c3145d9ee131 100644 (file)
@@ -6,7 +6,6 @@
 // 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;
+  }
 }