Зачем clear у float
Свойство clear указывает, может ли элемент стоять рядом с предшествующими float или должен опуститься ниже них (left / right / both).
Clearing floats (clearfix) заставляет контейнер «развернуться» по высоте и включить плавающие дочерние блоки. Тогда следующие элементы идут уже под контейнером, а не заезжают рядом с float.
Итог
Без clear/clearfix родитель с одними float часто схлопывается по высоте, а соседний контент «обтекает» float неожиданно.