You can do this with Flexbox and media queries.
As for flexbox you can just use display: flex and align-items: center on parent element and that will be row in this case.
Now you just need to adjust min-width in media queries to be same as bootstrap breakpoints So for example if you are using col-sm-6 bootstrap class, then 768px is break point and you will use @media(min-width: 768px) { } in your media queries.
- For
col-sm- you can use @media(min-width: 768px) Fiddle
- For
col-md- you can use @media(min-width: 992px) Fiddle
- For
col-lg- you can use @media(min-width: 1200px) Fiddle
@media(min-width: 768px) {
.flex {
display: flex;
align-items: center;
}
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css" rel="stylesheet"/>
<div class="container-fluid">
<div class="row flex">
<div class="col-sm-6">
<img src="http://rack.2.mshcdn.com/media/ZgkyMDE1LzA5LzEzLzNjL2dvb2dsZXRodW1iLmIyNGE0LmpwZwpwCXRodW1iCTk1MHg1MzQjCmUJanBn/63126c72/af4/google-thumb.jpg" class="img-responsive" />
</div>
<div class="col-sm-6 text-center">
<p>This is some text some text some more text</p>
<p>This is some text some text some more text</p>
<p>This is some text some text some more text</p>
<p>This is some text some text some more text</p>
</div>
</div>
</div>
Instead of Flexbox you can also get vertical-align with CSS Tables and again you have to adjust your queries with bootstrap breakpoints same as for flexbox. With tables you have to remove float from columns with float: none to get vertical-align.
@media(min-width: 768px) {
.row.display_table {
display: table;
}
.col-sm-6.left_cell, .col-sm-6.right_cell {
display: table-cell;
vertical-align: middle;
float: none;
}
img {
width: 100%;
}
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css" rel="stylesheet"/>
<div class="container-fluid">
<div class="row display_table">
<div class="col-sm-6 left_cell">
<img src="http://rack.2.mshcdn.com/media/ZgkyMDE1LzA5LzEzLzNjL2dvb2dsZXRodW1iLmIyNGE0LmpwZwpwCXRodW1iCTk1MHg1MzQjCmUJanBn/63126c72/af4/google-thumb.jpg" class="img-responsive" />
</div>
<div class="col-sm-6 right_cell text-center">
<p>This is some text some text some more text</p>
<p>This is some text some text some more text</p>
<p>This is some text some text some more text</p>
<p>This is some text some text some more text</p>
</div>
</div>
</div>