Спецификация CSS2.1 указывает, что overflow
кроме visible
устанавливает новый "контекст форматирования блока" . Это кажется мне странным, что свойство, чья явная цель - скрыть переполнение без влияния на макет, на самом деле сильно влияет на макет.
Похоже, что значения переполнения, отличные от visible
, объединяют две полностью несвязанные функции: создается ли BFC и скрывается ли переполнение. Не похоже на то, что "переполнение: скрытое" совершенно бессмысленно без BFC, потому что поплавки исторически могут переполнять их родительский элемент, скрывать переполнение без изменения макета кажется разумным.
В чем причины этого решения, если они известны? Были ли люди, которые работали над спекуляцией, объяснили, почему это было принято так?