Strange Bootstrap 3 grid behavior -


html-code example:

<div class="row">     <div class="col-md-12 col-sm-6" id="div1"></div>     <div class="col-md-12 col-sm-6" id="div2"></div>     <div class="col-md-12" id="div3"></div> </div> 

after spending quite lot of time discovered if don't specify rules on specific @media size, bootstrap behaves on strange way.

in example on small devices "div3" becomes container of div1, div2 , content (ex: buttons) isn't more accessible.

shouldn't defined default rule? col-sm-12, or right way?

it has been tricky find out.

edit

bootstrap doc says:

grid classes apply devices screen widths greater or equal breakpoint sizes, , override grid classes targeted @ smaller devices. therefore, e.g. applying .col-md-* class element not affect styling on medium devices on large devices if .col-lg-* class not present.

in case col-md-12 apply on small devices in strange way.

col-sm-6 has float: left. since col-md-12 dosen't have float, appear on top of other columns.

<div class="row">     <div class="col-md-12 col-sm-6" id="div1"></div>     <div class="col-md-12 col-sm-6" id="div2"></div> </div> <div class="row">     <div class="col-md-12" id="div3"></div> </div>