Фиксированная высота и absolute для текстовых блоков
-
Не задавайте текстовым блокам фиксированную высоту #
- Почему? #
-
При увеличении количества текста он вывалится наружу и может наложиться на нижележащие элементы.
- Как это увидеть? #
-
Можно отредактировать исходный HTML, а можно выполнить в консоли браузера такую команду:
После этого вы сможете отредактировать любой текст на странице.
Добавим текст:
- А как надо? #
-
Решение зависит от того, что нужно сделать. Если у блока по макету есть минимальная высота, но контента недостаточно, чтобы его растянуть, используйте
min-height
:-
Плохо
-
Хорошо
min-height
позволит добиться соответствия макету, а при добавлении контента блок просто вырастет вниз.Ещё это может быть полезно как временное решение, чтобы разложить блоки по макету, до того, как будет стилизовано содержимое, после этого
min-height
убирается.Если же контента достаточно,
min-height
не нужен, достаточно задать стили для текста иpadding
для блока, и его размеры будут определяться содержимым.Если у блока есть явные границы,
padding
нужно задавать со всех сторон, чтобы при добавлении текста он не упёрся в края:Изменим текст:
-
-
Не используйте
absolute
для позиционирования текстовых блоков #- Почему? #
-
При абсолютном позиционировании блок не влияет на размеры родителя. При увеличении количества текста он не сможет растянуть родительский блок и вывалится наружу.
- Как это увидеть? #
-
Как и в предыдущем случае, можно отредактировать исходный HTML или использовать команду в консоли:
После чего добавить текст в интересующий элемент.
- А как надо? #
-
В этом случае лучше перенести
position:absolute
на картинку и добавитьmin-height
, чтобы блок не схлопывался по высоте текста (иначе может вывалиться картинка):-
Плохо
-
Хорошо
-
Итого
- Не задавайте текстовым блокам фиксированную высоту, лучше использовать
min-height
. - По возможности, не используйте
absolute
для позиционирования текстовых блоков. Если текст должен наползать на картинку, абсолютное позиционирование лучше задать картинке.