я всегда была уверена что для абсолютных блоков не выделяется место на странице, они как бы лежат поверх всего
“Лежат поверх всего” это добавление элементам оси z, но это не значит что оси x и y пропадают. В данном случае происходит путаница между двумя определениями. Да, для абсолютно позиционированных элементов не выделяется место на странице (ну или тут можно выебнуться и сказать, что они вырваны из потока) Второе определение - это… Честно говоря не помню как оно там называется, но давай назовем его контекстом. То есть у нас есть поток, который отвечает за порядок html элементов, и контекст Контекст отвечает за расположение блока в чем-либо (фиговое определение и возможно кто-нибудь меня может поправить). То есть у нас есть html документ и у него есть поток в котором друг за дружкой идут все элементы. И все эти элементы лежат в одном контексте html тега По умолчанию все элементы лежат в контексте html тега. Извлечение документа из потока никак не влияет на контекст. Контекст можно переопределять разными способами. Тебе подошло бы свойство overflow hidden для родителя. Тогда у твоего абсолютного блока будет контекст не html, а родительский div. Выглядеть это будет так, будто твой элемент выходит за пределы родительского div, а не за пределы html. Соответственно горизонтальный скролл у сайта не появится так как браузер будет думать что за его пределы ничего не вышло. Но этим же свойством можно добавить горизонтальный скролл родительскому диву (по желанию) Так же при помощи этого свойства скролл можно убрать напрямую у html, но это уже считается костылем. Не нужно задавать лишних свойств родительским элементам если у тебя какой-то блок все ломает. Ну типа инкапсуляция, декомпозиция, все такое
Обсуждают сегодня