This is quite tricky. Here is the solution I came up with. You will need to use a bit of jQuery to get the desired result.
Here is the html, note how I switched the columns:
<div class="container text-center">
<div class="row">
<div class="col-sm-4 col-lg-3 col-lg-push-9">
<div class="alert alert-warning">A</div>
</div>
<div class="col-sm-8 col-lg-6 col-lg-pull-0 big">
<div class="alert alert-danger">C</div>
</div>
<div class="col-sm-4 col-lg-3 col-lg-pull-9 small">
<div class="alert alert-info">B</div>
</div>
</div>
</div>
And here is the jQuery:
<script>
var $iW = $(window).innerWidth();
if ($iW < 768){
$('.small').insertBefore('.big');
}else{
$('.big').insertBefore('.small');
}
</script>
Note: the downside to this is that the jQuery is not bound to the window resizing. So If you were to resize the window after the document load, you will have pretty bad result. However, this can also be fixed by using $(window).resize(function(){});
However, if you don't want to use JS at all. Here is another solution that will require you to duplicate one of your blocks. If the contents of this block are static and not a lot, I believe this is a good compromise. However, you can also tweak it a bit to fit your needs.
Here is the HTML :
<div class="container text-center">
<div class="row">
<div class="col-sm-4 col-lg-3 col-lg-push-9">
<div class="alert alert-warning">A</div>
</div>
<div class="col-sm-4 small-screen-only">
<div class="alert alert-info">B</div>
</div>
<div class="col-sm-8 col-lg-6 col-lg-pull-0 big">
<div class="alert alert-danger">C</div>
</div>
<div class="col-sm-4 col-lg-3 col-lg-pull-9 small">
<div class="alert alert-info">B</div>
</div>
</div>
</div>
Notice the duplication of block B.
Here is the CSS:
.small-screen-only{
display: none;
}
@media all and (max-width: 767px)
{
.small-screen-only{
display: block
}
.small{
display: none;
}
}
I personally would choose the CSS option as it is more native to the browser. Even if the contents of the blocks were dynamically added, I believe you can still find a way around it.