]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Fixes #14799: Add vertical alignment of image in media component
authorNicole Sullivan <nsullivan@pivotal.io>
Tue, 14 Oct 2014 21:09:57 +0000 (17:09 -0400)
committerJenn Dodd <jedodd@pivotal.io>
Thu, 23 Oct 2014 22:48:18 +0000 (18:48 -0400)
Signed-off-by: Jenn Dodd <jedodd@pivotal.io>
dist/css/bootstrap.css
docs/_includes/components/media.html
docs/dist/css/bootstrap.css
less/media.less

index 02a92e63931085ff5343c84021668ba29449edd0..3c224382e4bfb11aa803c1d886bc57e0d0f4699a 100644 (file)
@@ -4886,29 +4886,34 @@ a.thumbnail.active {
   background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
   background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 }
-.media,
-.media-body {
-  overflow: hidden;
-  zoom: 1;
-}
-.media,
-.media .media {
+.media {
   margin-top: 15px;
 }
+.media .media-right,
+.media .pull-right {
+  padding-left: 10px;
+}
+.media .media-left,
+.media .pull-left {
+  padding-right: 10px;
+}
 .media:first-child {
   margin-top: 0;
 }
-.media-object {
-  display: block;
+.media .media-left,
+.media .media-right,
+.media .media-body {
+  display: table-cell;
+  vertical-align: top;
 }
-.media-heading {
-  margin: 0 0 5px;
+.media .media-middle {
+  vertical-align: middle;
 }
-.media > .pull-left {
-  margin-right: 10px;
+.media .media-bottom {
+  vertical-align: bottom;
 }
-.media > .pull-right {
-  margin-left: 10px;
+.media-heading {
+  margin: 0 0 5px 0;
 }
 .media-list {
   padding-left: 0;
index 57aee1e1dcf69192cec61f366330e552d63ec97a..9c166375e3cca2c3ea1a173bb40257fea0b9619f 100644 (file)
@@ -4,10 +4,10 @@
   <p class="lead">Abstract object styles for building various types of components (like blog comments, Tweets, etc) that feature a left- or right-aligned image alongside textual content.</p>
 
   <h3 id="media-default">Default media</h3>
-  <p>The default media allow to float a media object (images, video, audio) to the left or right of a content block.</p>
+  <p>The default media displays a media object (images, video, audio) to the left or right of a content block.</p>
   <div class="bs-example">
     <div class="media">
-      <a class="pull-left" href="#">
+      <a class="media-left" href="#">
         <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
       </a>
       <div class="media-body">
       </div>
     </div>
     <div class="media">
-      <a class="pull-left" href="#">
+      <a class="media-left" href="#">
         <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
       </a>
       <div class="media-body">
         <h4 class="media-heading">Media heading</h4>
         Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
         <div class="media">
-          <a class="pull-left" href="#">
+          <a class="media-left" href="#">
             <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
           </a>
           <div class="media-body">
         </div>
       </div>
     </div>
+    <div class="media">
+      <div class="media-body">
+        <h4 class="media-heading">Media heading</h4>
+        Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
+      </div>
+      <a class="media-right" href="#">
+        <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
+      </a>
+    </div>
+    <div class="media">
+      <a class="pull-right" href="#">
+        <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
+      </a>
+      <a class="pull-left" href="#">
+        <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
+      </a>
+      <div class="media-body">
+        <h4 class="media-heading">Deprecated pull-right pull-left example</h4>
+        Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
+      </div>
+    </div>
   </div><!-- /.bs-example -->
 {% highlight html %}
 <div class="media">
-  <a class="pull-left" href="#">
+  <a class="media-left" href="#">
     <img class="media-object" src="..." alt="...">
   </a>
   <div class="media-body">
     ...
   </div>
 </div>
+{% endhighlight %}
+
+  <p>The classes <code>.pull-left</code> and <code>.pull-right</code> also exist and were previously used as part of the media component, but are deprecated for that use as of v3.3.0. They are approximately equivalent to <code>.media-left</code> and <code>.media-right</code>, except that <code>.media-right</code> should be placed after the <code>.media-body</code> in the html.</p>
+  <h3 id="media-alignment">Media alignment</h3>
+  <p>The images or other media can be aligned top, middle, or bottom. The default is top aligned.</p>
+  <div class="bs-example">
+    <div class="media">
+      <a class="media-left" href="#">
+        <img class="media-object" data-src="holder.js/40x40" alt="Generic placeholder image">
+      </a>
+      <div class="media-body">
+        <h4 class="media-heading">Top aligned media</h4>
+        Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
+      </div>
+    </div>
+    <div class="media">
+      <a class="media-left media-middle" href="#">
+        <img class="media-object" data-src="holder.js/40x40" alt="Generic placeholder image">
+      </a>
+      <div class="media-body">
+        <h4 class="media-heading">Middle aligned media</h4>
+        Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
+      </div>
+    </div>
+    <div class="media">
+      <a class="media-left media-bottom" href="#">
+        <img class="media-object" data-src="holder.js/40x40" alt="Generic placeholder image">
+      </a>
+      <div class="media-body">
+        <h4 class="media-heading">Bottom aligned media</h4>
+        Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
+      </div>
+    </div>
+  </div>
+{% highlight html %}
+<div class="media">
+  <a class="media-left media-middle" href="#">
+    <img class="media-object" data-src="..." alt="...">
+  </a>
+  <div class="media-body">
+    <h4 class="media-heading">Middle aligned media</h4>
+    ...
+  </div>
+</div>
 {% endhighlight %}
 
   <h3 id="media-list">Media list</h3>
   <div class="bs-example">
     <ul class="media-list">
       <li class="media">
-        <a class="pull-left" href="#">
+        <a class="media-left" href="#">
           <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
         </a>
         <div class="media-body">
           <p>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.</p>
           <!-- Nested media object -->
           <div class="media">
-            <a class="pull-left" href="#">
+            <a class="media-left" href="#">
               <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
             </a>
             <div class="media-body">
               Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
               <!-- Nested media object -->
               <div class="media">
-                <a class="pull-left" href="#">
+                <a class="media-left" href="#">
                   <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
                 </a>
                 <div class="media-body">
           </div>
           <!-- Nested media object -->
           <div class="media">
-            <a class="pull-left" href="#">
+            <a class="media-left" href="#">
               <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
             </a>
             <div class="media-body">
           </div>
         </div>
       </li>
-      <li class="media">
-        <a class="pull-right" href="#">
-          <img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
-        </a>
-        <div class="media-body">
-          <h4 class="media-heading">Media heading</h4>
-          Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
-        </div>
-      </li>
     </ul>
   </div>
 {% highlight html %}
 <ul class="media-list">
   <li class="media">
-    <a class="pull-left" href="#">
+    <a class="media-left" href="#">
       <img class="media-object" src="..." alt="...">
     </a>
     <div class="media-body">
index 02a92e63931085ff5343c84021668ba29449edd0..3c224382e4bfb11aa803c1d886bc57e0d0f4699a 100644 (file)
@@ -4886,29 +4886,34 @@ a.thumbnail.active {
   background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
   background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 }
-.media,
-.media-body {
-  overflow: hidden;
-  zoom: 1;
-}
-.media,
-.media .media {
+.media {
   margin-top: 15px;
 }
+.media .media-right,
+.media .pull-right {
+  padding-left: 10px;
+}
+.media .media-left,
+.media .pull-left {
+  padding-right: 10px;
+}
 .media:first-child {
   margin-top: 0;
 }
-.media-object {
-  display: block;
+.media .media-left,
+.media .media-right,
+.media .media-body {
+  display: table-cell;
+  vertical-align: top;
 }
-.media-heading {
-  margin: 0 0 5px;
+.media .media-middle {
+  vertical-align: middle;
 }
-.media > .pull-left {
-  margin-right: 10px;
+.media .media-bottom {
+  vertical-align: bottom;
 }
-.media > .pull-right {
-  margin-left: 10px;
+.media-heading {
+  margin: 0 0 5px 0;
 }
 .media-list {
   padding-left: 0;
index 5ad22cd6d540fa378940c97910eabad478b09cba..eee1c78f3ad5b4527a9635681804eafcf463043b 100644 (file)
@@ -1,50 +1,43 @@
-// Media objects
-// Source: http://stubbornella.org/content/?p=497
-// --------------------------------------------------
-
-
-// Common styles
-// -------------------------
-
-// Clear the floats
-.media,
-.media-body {
-  overflow: hidden;
-  zoom: 1;
-}
-
-// Proper spacing between instances of .media
-.media,
-.media .media {
+.media {
+  // Proper spacing between instances of .media
   margin-top: 15px;
-}
-.media:first-child {
-  margin-top: 0;
-}
 
-// For images and videos, set to block
-.media-object {
-  display: block;
-}
+  // Proper spacing of .media-right
+  .media-right,
+  .pull-right {
+    padding-left: 10px;
+  }
 
-// Reset margins on headings for tighter default spacing
-.media-heading {
-  margin: 0 0 5px;
-}
+  // Proper spacing of .media-left
+  .media-left,
+  .pull-left {
+    padding-right: 10px;
+  }
 
+  &:first-child {
+    margin-top: 0;
+  }
 
-// Media image alignment
-// -------------------------
+  .media-left,
+  .media-right,
+  .media-body {
+    display: table-cell;
+    vertical-align: top;
+  }
 
-.media {
-  > .pull-left {
-    margin-right: 10px;
+  .media-middle {
+    vertical-align: middle;
   }
-  > .pull-right {
-    margin-left: 10px;
+
+  .media-bottom {
+    vertical-align: bottom;
   }
 }
 
+// Reset margins on headings for tighter default spacing
+.media-heading {
+  margin: 0 0 5px 0;
+}
 
 // Media list variation
 // -------------------------