LATEST SOLUTION (2022)
Solution 4 using Bootstrap 4 or 5
Bootstrap 4 and 5 use Flexbox by default, so there is no need for extra CSS.
<div class="container"> <div class="row "> <div class="col-md-4" style="background-color: red"> some content </div> <div class="col-md-4" style="background-color: yellow"> catz <img width="100" height="100" src="https://placekitten.com/100/100/"> </div> <div class="col-md-4" style="background-color: green"> some more content </div> </div> </div>
Solution 1 using negative margins (doesn’t break responsiveness)
.row{ overflow: hidden; } [class*="col-"]{ margin-bottom: -99999px; padding-bottom: 99999px; }
Solution 2 using table
.row { display: table; } [class*="col-"] { float: none; display: table-cell; vertical-align: top; }
Solution 3 using flex added August 2015. Comments posted before this don’t apply to this solution.
.row { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; flex-wrap: wrap; } .row > [class*='col-'] { display: flex; flex-direction: column; }