.clear,.clear:after,.clear:before{
content:""; display:block; clear:both;
}
это стандартный clearfix , когда используете float обязательно применять его так как происходит схлопывание границ родительского блока, с появлением flexbox эта проблема решилась сама собой
https://codepen.io/topicstarter/pen/NzPzGd?editors=1010