почему абс. позиционированные блоки порождают отступ снизу? Ведь они же не в потоке?
Надеюсь кто-нибудь объяснить мне почему так происходит.
А куда же им деться?
Причина очевидна — блок растягивает страницу настолько, чтобы вместиться в неё. И неважно, абсолютный он, или нет.
Ведь они же не в потоке?
Ну и что? Ну вынули элемент из потока, со страницы-то он никуда не делся.
---
Простое решение:
дать выпадашкам position:fixed а при ховере - absolute
Побочный эффект — скролл страницы будет проявляться только при открытом меню, если оно не вместится.
Еще простое решение (частный случай):
Для последнего уровня задать максимальную высоту и oveflow:auto
Минусы — годится только для последнего уровня, потому что его границы уже ничего не вылезет из-за overflow
Все остальные решения требуют вмешательства javascript или серьёзной переработки принципа показа подменюшек.