<!-- @TODO - Add fallback support for IE9 and less
<!--[if lte IE 9]>
<![endif]-->
<!-- Page header for flexbox example -->
<div class="container">
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><em class="text-muted small">Example One<br></em>Flexbox Thumbnail Cards
<br><small class="text-info">Responsive Equal Height Boxes for Twitter Bootstrap 3</small>
<br> <span class="small text-muted"> Also <a target=_"blank" href="https://codepen.io/bootstrapped/details/RRBdbm/">here's a demo with list/grid toggle of the thumbnail cards.</a></span>
</h1>
</div>
</div>
<!-- /.row -->
</div>
<br>
<div class="container">
<div class="flex-row flex-code row">
<div class="col-sm-6">
<div class="well" style="
background-color: rgba(216, 221, 222, 0.82);">
<div class="flex-row row">
<div class="col-sm-12">
<p><b class="text-danger">Equal Height Columns HTML & CSS</b></p>
</div>
<div class="col-xs-12 col-sm-12 col-md-6">
<div id="row-col-code" class="flex-text">
<pre>
<div class="flex-row row">
<div class="col-xs-6 col-sm-4 col-lg-3">
</div>
</div>
</pre>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-6">
<div class="flex-text">
<pre>
@media only screen and (min-width : 481px) {
.flex-row.row {
display: flex;
flex-wrap: wrap;
}
.flex-row.row > [class*='col-'] {
display: flex;
flex-direction: column;
}
.flex-row.row:after,
.flex-row.row:before {
display: flex;
}
}
</pre>
</div>
</div>
</div>
</div></div>
<div class="col-sm-6">
<div class="well" style="
background-color: rgba(216, 221, 222, 0.82);">
<div class="flex-row row">
<div class="col-sm-12">
<p><b class="text-danger">Equal Height Flexbox Thumbnails</b></p>
</div>
<div class="col-xs-12 col-sm-12 col-md-6">
<div id="thumbnail-code-html" class="flex-text">
<pre>
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text"> Content ...<p>
<p><a class="btn btn-primary" href="#">Link</a></p>
</div>
</div>
</pre>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-6">
<div class="flex-text">
<pre>
.flex-row .thumbnail,
.flex-row .caption {
flex:1 0 auto;
flex-direction:column;
}
.flex-text {
flex-grow:1
}
.flex-row img {
height:auto;
width:100%
}
</pre>
</div>
</div>
</div>
</div></div>
</div><!-- /.row -->
</div><!-- /.container -->
<br>
<br>
<!-- EXAMPLE 1 BELOW -->
<div class="container">
<div class="flex-row row">
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. asdfasdfasdfsdfa asdfasdf sdfasfasdfasfasdfasdfasdfsd asdf asdf Distinctio, evenietsdf sdfsdfsdfsdfsdfsdf.
</p>
<p><a class="btn btn-primary" href="#">Link</a></p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail ">
<img src="http://placehold.it/350x150">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore, vel, quia. Non nostrum, consectetur ipsum doloribus enim maiores a laudantium, odio vel blanditiis id ea dolorum expedita fugit incidunt commodi.</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore, vel, quia. Non nostrum, consectetur ipsum doloribus enim maiores a laudantium.</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<img src="http://placehold.it/350x180">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequatur optio ipsa fuga vel repudiandae impedit illum delectus nihil error animi nobis quaerat quidem, amet, praesentium aspernatur inventore numquam! Totam, dolorem inventore reprehenderit,
culpa obcaecati!</p>
<p><a class="btn btn-primary" href="#">Link</a></p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quo veniam tempore vero velit deleniti corporis recusandae placeat eum repellendus modi architecto, iste, numquam nulla, praesentium fuga soluta eos consequatur sequi expedita! Ea aspernatur
explicabo optio ducimus officia blanditiis voluptas possimus veniam maxime!</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quo veniam tempore vero velit deleniti corporis recusandae placeat eum repellendus modi architecto, iste, numquam nulla, praesentium fuga soluta eos consequatur sequi expedita! Ea aspernatur
explicabo!
</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
</div>
<!-- /.container -->
<br>
<!-- /.flex-row -->
<div class="row">
<div class="col-sm-12">
<h4>Flexbox Browser Compatability</h4>
<p class="lead">This is by far the best method available using css. While it lacks support for IE 9 and below like other examples on this page, there are always workarounds if it's necessary <em>(<a href="https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support">see update</a></em> about Microsoft ending support for outdated browsers) We can proivide a fallback using <code>display:inline-block</code> if we're using it on an area that isn't already applying the correct classes.</p>
<p class="lead">
If we must have support for IE 9 and below we can add a polyfill by adding something like <a href="https://github.com/Sam152/Javascript-Equal-Height-Responsive-Rows">this Jquery plugin</a> and and wrap it all up in a conditional tag...</p>
<pre>
<!--[if lte IE 9]>
<![endif]-->
</pre>
<br>
<!--
<br>
<h4 id="grid-issues">Issues with Bootstrap3 Grid Flexbox on Mobile Display</h4>
<p class="lead">
Also, an issue people run into when using flexbox with Bootstrap3 Grid is that it doesn't always work when col-xs-* isn't specified. This can easily be fixed by simply adding a fallback media query for mobile display.
<pre>
@media only screen and (max-width : 768px) {
.flex-row.row > [class*="col-sm-"]:not([class*="col-xs-"]) {
width: 100%;
}
}
</pre>
-->
</div>
</div>
</div>
<br>
<br>
<br>
<!-- broken table example -->
<!--
<div class="container">
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><em class="text-muted small">Example Two<br></em>Table Thumbnail Cards
<br><small class="text-info"><em class="text-danger">"Almost"</em> Equal Height Boxes for Twitter Bootstrap 3</small>
</h1>
<br>
</div>
</div>
</div>
<div class="container">
<pre>.table-row.row {
display: table;
width: 100%;
table-layout: fixed;
word-wrap: break-word;
}
.table-row.row [class*="col-"] {
float: none;
display: table-cell;
vertical-align: top;
}
</pre>
<br>
<br>
</div>
<div class="container">
<div class="table-row row">
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. asdfasdfasdfsdfa asdfasdf sdfasfasdfasfasdfasdfasdfsd asdf asdf Distinctio, evenietsdf sdfsdfsdfsdfsdfsdf.
</p>
<p><a class="btn btn-primary" href="#">Link</a></p>
</div>
</div>
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail ">
<img src="http://placehold.it/350x150">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore, vel, quia. Non nostrum, consectetur ipsum doloribus enim maiores a laudantium, odio vel blanditiis id ea dolorum expedita fugit incidunt commodi.</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
</div>
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore, vel, quia. Non nostrum, consectetur ipsum doloribus enim maiores a laudantium.</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
</div>
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<img src="http://placehold.it/350x180">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequatur optio ipsa fuga vel repudiandae impedit illum delectus nihil error animi nobis quaerat quidem, amet, praesentium aspernatur inventore numquam! Totam, dolorem inventore reprehenderit,
culpa obcaecati!</p>
<p><a class="btn btn-primary" href="#">Link</a></p>
</div>
</div>
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quo veniam tempore vero velit deleniti corporis recusandae placeat eum repellendus modi architecto, iste, numquam nulla, praesentium fuga soluta eos consequatur sequi expedita! Ea aspernatur
explicabo!
</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
</div>
</div>
</div>
<br>
<br>
<div class="panel">
<div class="panel-body">
<p class="lead">Three things are wrong with the last example.
<ol class="nav-stacked">
<li>
The layout is no longer responsive on different media queries. You can overcome this by putting the table css in it's own media-query.
</li>
<li>
They don't appear to be equal... This is because we actually wanted the <em>thumbnails</em> to be equal height and we specified it on the columns. It's important to make sure when using the table method that you are applying the table styles to
the exact items you want equal... not their parents
</li>
<li>
The container width is wrong. This is because we're telling the layout to be ta table but were also trying to apply padding, margins, etc. like they are normal block or inline-block elements.
</li>
</ol>
</div>
</div>
</div>
<br>
<br>
-->
<!-- Page header for table example -->
<div class="container">
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><em class="text-muted small">Example Two<br></em>Table Equal Height Cards
</h1> In this example we'll be using the table method except making a few changes. First, we're actually applying the table to the <code>.thumbnails</code> in this case, which are actually what we want to be equal. We aso omit the <code>[.class*="col-]</code> classes all together since they aren't doing anything useful for us using the table method. Tables form columns on their own so adding additioanl classes is counter productive.</p>
</div>
</div>
<!-- /.row -->
</div>
<br>
<div class="container">
<p class="h4">Equal Height Table CSS</p>
<br>
<em class="text-danger">HTML</em>
<pre><div class="table-row-equal">
<div class="thumbnail">
Content...
</div>
<div class="thumbnail">
Content...
</div>
</div></pre>
<br>
<em class="text-danger">CSS</em>
<pre>
@media only screen and (min-width : 480px){
.table-row-equal {
display: table;
width: 100%;
table-layout: fixed;
border-spacing: 30px 0px;
word-wrap: break-word;
border-spacing: 30px 0px;
}
.table-row-equal .thumbnail {
float: none;
display: table-cell;
vertical-align: top;
width: 1%;
}
}
</pre>
<br>
<br>
</div>
<div class="container">
<div class="row" style="margin: 0 -30px;">
<div class="table-row-equal">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. asdfasdfasdfsdfa asdfasdf sdfasfasdfasfasdfasdfasdfsd asdf asdf Distinctio, evenietsdf sdfsdfsdfsdfsdfsdf.
</p>
<p><a class="btn btn-primary" href="#">Link</a></p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. asdfasdfasdfsdfa asdfasdf sdfasfasdfasfasdfasdfasdfsd asdf asdf Distinctio, evenietsdf sdfsdfsdfsdfsdfsdf. Lorem ipsum dolor sit amet, consectetur adipisicing elit. asdfasdfasdfsdfa asdfasdf
sdfasfasdfasfasdfasdfasdfsd asdf asdf Distinctio, evenietsdf sdfsdfsdfsdfsdfsdf.
</p>
<p><a class="btn btn-primary" href="#">Link</a></p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
</dvi>
<br>
<br>
<br>
<br>
<!-- Page header for table example -->
<div class="container">
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Masonary Thumbnail Cards
<br><small class="text-info">Responsive Masonary Boxes for Twitter Bootstrap 3</small>
</h1>
</div>
</div>
<!-- /.row -->
</div>
<br>
<div class="container">
<p class="h4">Masonary Columns CSS</p>
<pre>
.masonary-row.row {
-webkit-column-gap: 30px;
-moz-column-gap: 30px;
column-gap: 30px;
padding-left: 15px;
padding-right: 15px;
word-wrap: break-word;
}
.masonary-row [class*="col-"] {
display: inline-block;
width: 100%;
height: 100%;
float: none;
padding: 0px;
}
@media (min-width: 480px) {
.masonary-row.row {
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 2;
}
}
@media (min-width: 768px) {
.masonary-row.row {
-webkit-column-count: 3;
-moz-column-count: 3;
column-count: 3;
}
}</pre>
<br>
<br>
</div>
<div class="container">
<div class="masonary-row row">
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. asdfasdfasdfsdfa asdfasdf sdfasfasdfasfasdfasdfasdfsd asdf asdf Distinctio, evenietsdf sdfsdfsdfsdfsdfsdf.
</p>
<p><a class="btn btn-primary" href="#">Link</a></p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail ">
<img src="http://placehold.it/350x150">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore, vel, quia. Non nostrum, consectetur ipsum doloribus enim maiores a laudantium, odio vel blanditiis id ea dolorum expedita fugit incidunt commodi.</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore, vel, quia. Non nostrum, consectetur ipsum doloribus enim maiores a laudantium.</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<img src="http://placehold.it/350x180">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequatur optio ipsa fuga vel repudiandae impedit illum delectus nihil error animi nobis quaerat quidem, amet, praesentium aspernatur inventore numquam! Totam, dolorem inventore reprehenderit,
culpa obcaecati!</p>
<p><a class="btn btn-primary" href="#">Link</a></p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quo veniam tempore vero velit deleniti corporis recusandae placeat eum repellendus modi architecto, iste, numquam nulla, praesentium fuga soluta eos consequatur sequi expedita! Ea aspernatur
explicabo optio ducimus officia blanditiis voluptas possimus veniam maxime!</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
<div class="col-xs-6 col-sm-4 col-lg-3">
<div class="thumbnail">
<div class="caption">
<h3>Title</h3>
<p class="flex-text text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quo veniam tempore vero velit deleniti corporis recusandae placeat eum repellendus modi architecto, iste, numquam nulla, praesentium fuga soluta eos consequatur sequi expedita! Ea aspernatur
explicabo!
</p>
<p>
<a class="btn btn-primary" href="#">Link</a>
</p>
</div>
<!-- /.caption -->
</div>
<!-- /.thumbnail -->
</div>
</div>
<!-- /.flex-row -->
</div>
<!-- /.container -->
<footer style="padding: 20px; border-top: 1px solid #eee; margin-top: 25px;">
<div class="container">
<div class="text-muted text-center">
Copyright © 2015 Bryan Willis
</div>
</div>
</footer>