Update
Без использования
clear этот код годится
для предотвращения margin-collapse (перетекания вертикального
margin со стороны первого и последнего детей).
Только в правиле
content для краткости можно записать пустую строку. По итогу — отличное средство, ибо
overflow:hidden не всегда уместно. Как и задание рамки.
Для предотвращения выпадения из элемента плавающих потомков к этим правилам добавляется
clear. По сути, нужен лишь
:after, но часто оставляют и
:before, хотя его применение может привести к не совсем желаемым последствиям (начало внешнего верхнего отступа первого ребёнка от нижнего внешнего отступа плавающего элемента).
jsfiddle.net/petroveg/avjLscwf