You can try to use display: table
and display: table-cell
.
.col-xs-8, .col-xs-4 {
height: 60px;
}
.d-table {
display: table;
height: 100%;
}
.d-table-cell {
display: table-cell;
}
.align-middle {
vertical-align: middle;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<li class="list-group-item">
<div class="row">
<div class="col-xs-8">
<b>Some Title</b>
<br>
Some details some details some details some details
</div>
<div class="col-xs-4">
<div class="d-table">
<div class="d-table-cell align-middle">
<a id="my-link">My link</a>
</div>
</div>
</div>
</div>
</li>
display: table
needs a height: value
property. Then, display: table-cell
will use this height value with vertical-align: middle
.
In this example, .col-xs-8
and .col-xs-4
have the same height value: 60px
.
P/S: I've change .col-md-8
and .col-md-4
to .col-xs-8
and .col-xs-4
to fit the content on this site.