Реализация эффекта затухания текста в CSS при overflow

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы создать эффект затемнения текста при переполнении контейнера, внесите следующие изменения в CSS: установите свойство overflow: hidden для контейнера и используйте псевдоэлемент :after с градиентом, переходящим от прозрачного цвета к цвету фона контейнера. Пример кода:

CSS
Скопировать код
.fade-text {
  position: relative;
  overflow: hidden;
  max-height: 100px;
}

.fade-text:after {
  content: '';
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 40px;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #FFF);
}

Соответствующий HTML-код выглядит так:

HTML
Скопировать код
<div class="fade-text">Текст, входящий за границы контейнера, плавно затухает снизу.</div>

Основные параметры для настройки эффекта затухания — это свойство height псевдоэлемента :after и альфа-канал rgba в градиенте.

Кинга Идем в IT: пошаговый план для смены профессии

Подробное объяснение

Реализация эффекта затемнения текста при выходе за пределы контейнера осуществляется с использованием CSS-градиентов, при этом не требуется использование JavaScript. Давайте подробнее разберем этот механизм.

Принцип работы градиента

При использовании linear-gradient обеспечивается плавный переход от полной прозрачности к цвету, который соответствует фону контейнера.

Кроссбраузерность

Для обеспечения поддержки в различных браузерах используйте соответствующие префиксы. Например, для движка WebKit примените такую запись:

CSS
Скопировать код
.fade-text:after {
  background: -webkit-linear-gradient(bottom, rgba(255,255,255,0) 60%, #FFF);
  background: linear-gradient(to bottom, rgba(255,255,255,0) 60%, #FFF);
}

Таким образом, эффект затемнения текста будет корректно отображаться в большинстве браузеров.

Настройка области затемнения

Используя свойства max-height или height, вы можете задать область, в которой текст останется видимым, а за её пределами начнёт затемнение. Для регулирования самого эффекта затухания нужно изменить высоту псевдоэлемента :after:

CSS
Скопировать код
.fade-text {
  max-height: 200px;
}

.fade-text:after {
  height: 60px;
}

Позиционирование псевдоэлемента :after

Псевдоэлемент :after располагается с абсолютным позиционированием внутри контейнера с относительным позиционированием, создавая таким образом иллюзию затухающего текста.

Примеры

Для демонстрации и тестирования примеров в реальном времени используйте такие онлайн-площадки, как jsFiddle или CodePen.

Визуализация

Представьте себе, что текст — это гости, идущие на вечеринку на бэкярде через узкие ворота. Если они не проходят, они начинают плавно растворяться в тумане:

До: 🚶‍♀️🚶🚶‍♂️||||🌼🎉 После: 🚶‍♀️🚶💨||||🌼🎉

CSS обеспечивает элегантный способ управления переполнением текста, сохраняя страницу аккуратной и удобной для восприятия пользователями.

Полезные материалы

  1. Ограничение текста многоточием с помощью CSS | CSS-Tricks — как использовать CSS для динамического обрезания текста.
  2. Использование CSS-градиентов | MDN — создание эффекта затухания текста с помощью CSS-градиентов.
  3. ::after – MDN — описание и применение псевдоэлемента ::after.
  4. Свойство text-overflow в CSS — обзор свойства text-overflow.
  5. text-overflow – MDN – детальное объяснение свойства text-overflow.
  6. position – MDN – руководство по использованию свойства position для псевдоэлементов и других элементов.