Властивість overflow
Last updated
Last updated
Властивість overflow визначає, як поводить себе контент елемента, який не вміщується в його внутрішню область (content box). Значення overflow вказує, чи потрібно відображати прокрутку для видимості контенту, який не умістився у блок чи приховувати.
visible (за замовчуванням): Контент, що не вмістився буде видимий за межами елемента, і не буде обрізаний, навіть якщо він не вміщується у внутрішню область елемента.
hidden: Контент, який не умістився буде обрізаний та прихований.
scroll: Показує горизонтальну та/або вертикальну смугу прокрутки, навіть якщо вміщений контент поміщається всередині елемента. Якщо контент не вміщується, буде відображено смуги прокрутки.
auto: Показує смуги прокрутки лише в тому випадку, якщо контент не вміщується. Якщо контент вміщується, смуги прокрутки не відображаються.
Заокруглення кутів зображення можна досягти за допомогою властивості border-radius. Але для цього зображення потрібно помістити в контейнер (тумбу, обгортку).
Контейнеру задають властивість закруглення кутів і приховують контент, який виходить за рамку overflow: hidden;. Саме зображення при цьому роблять блоковим елементом, а також використовують властивість object-fit зі значенням cover, щоб гарно спозиціонувати зображення.
Декоративний оверлей - це графічний елемент, який накладається на зображення або відео, щоб змінити його вигляд або надати йому ефект. Цей елемент може бути використаний для створення темної або світлої тіні, додавання тексту або інших графічних ефектів.
Часто на сайтах зустрічається такий ефект: випливання згори зображення якогось додаткового шару із написом тощо. Для цього створюють цей шар і зміщують його за межі видимості контейнера (тумби, обгортки), а при наведенні курсора показують його в видимій області контейнера. Повторимо цей ефект.
У розмітці в контейнер поміщаємо зображення, а також на одному рівні із ним - додатковий <div> який буде виконувати роль оверлея.
Тепер потрібно задати розміри нашому контейнеру і відносне позиціювання, щоб позиціювати нащадків відносно нього.
Потім потрібно спозиціонувати і саме зображення, як було описано вище при розгляді скруглених кутів у зображення.
Тепер позиціюємо наш оверлей:
Робимо абсолютне позиціювання
задаємо висоту і ширину 100% від батьківського контейнера
щоб побачити оверлей робимо його з напівпрозорою заливкою
задаємо за допомогою FlexBox розташування його контенту
і найголовніше - задаємо йому позицію. В даному разі зсунемо на значення висоти контейнера вниз. Таким чином він розміститься абсолютно одразу під основним контейнером.
Тепер додамо ефект :hover на наш контейнер - при наведенні курсора, щоб наш оверлей покривав контейнер.
Оверлей все ще лишається видимим під контейнером, коли курсор не наведено, тому контейнеру додамо властивість, щоб контент, який виходить за його межі - приховувався.
Додамо також стилізацію тексту всередині оверлея.
Ефект чудово працює. Тільки шар оверлей різко з'являється. А хотілось би, щоб він плавно випливав. Для цього зробимо певний рефакторинг. Додамо трансформацію і переходи.
Ці налаштування розглядаються далі в матеріалах. Зараз просто сприймемо це як додаткове налаштування.
Зробимо зміни в позиціювання оверлея. Спозиціонуємо відносно верхнього лівого кута. А також за допомогою трансформації змістимо по вертикалі на 100%. І додамо перехід.
При наведенні курсора наш овердей буде зсовуватись вгору на 100% батьківського контейнера.
І ось що у нас вийшло: