Вероятно, вы знакомы с использованием такой техники Photoshop, когда в качестве маски изображения выступает текст; это лучший известный способ добавить текстуры или даже фон изображения на ваш текст. Далее вы можете использовать этот текст в виде изображения на вашем веб-сайте; а ведь было бы здорово, если бы мы смогли наложить такой же эффект, используя HTML и CSS? Хорошие новости — мы можем!

CSS представила такие свойства как background-clip и mask-image, которые вы можете использовать для создания схожих эффектов, для которых раньше использовался Фотошоп. Кроме того, для этого вы также можете использовать SVG.

Сегодня мы рассмотрим эти опции и даже сделаем несколько простых анимаций. Если вы хотите продолжить самостоятельно, один на один с кодом, вы можете загрузить исходные файлы здесь.

Поддержка браузерами

Как и следовало ожидать, некоторые из этих свойств, которые мы будем использовать, поддерживаются не повсеместно. Это означает, что они не будут работать в браузерах вроде IE и Firefox.

Создание фонового подвижного изображения текста с помощью BACKGROUND-CLIP

Первая опция, которую мы рассмотрим, это свойство background-clip. Это свойство определяет, будет ли фон продлён за границы или нет. Оно позволяет тексту определённого элемента обрезать изображение.

HTML

Наш макет — это просто h1 с классом bgClip:

А теперь давайте добавим магии в CSS…

CSS

Мы добавим текстуру ночного неба к нашему изображению. Мы также убедимся, что текст отображён со сглаживаем, используя font-smoothing. Обратите внимание, что для этой работы цвет текста должен быть прозрачным, поэтому мы также используем text-fill-color:transparent.

А теперь просто добавим немного анимации, чтобы сделать фон более привлекательным:

А вот и результат:

Клипуем текст с использованием SVG

Следующая техника, которую мы рассмотрим, это SVG клиппинг. Наподобие приведённому выше методу CSS, SVG также позволяет вам клиповать текст изображением, используя свойство clipPath. Обычно свойство clipPath содержит форму атрибутов, таких как круг или квадрат, но вы также можете использовать текст.

SVG

Видите, я использую HTML элемент img для клиппинга изображения.

 

Хотя я здесь использую .jpg, вы можете использовать другие форматы изображений или даже видео.

CSS

А теперь всё, что нам нужно, это использовать свойство clip-path для наложения на SVG контуров видимого изображения:

А вот и результат:

Тест под маской с помощью MASK-IMAGE

Последняя техника, которую мы собираемся рассмотреть, — это текстурирование текст с помощью mask-image. Базовая функциональность этого свойства в том, что оно будет вырезать область текста, которая видна в соответствии с прозрачностью.

HTML

Всё, что нам нужно, это один элемент h1 обёрнутый в div:

CSS

Чтобы наложить маску на изображение с помощью текста, мы будем использовать -webkit-mask-image, который задаст изображение и мы также добавим клёвый text-shadow для улучшения вида. Наконец, я хочу внести дополнительную гладкость при эффекте наведения, когда весь текст становится видимым (просто потому что мы можем):

А вот и результат:

Заключение

Отлично! Вы только что научились новым трюкам с текстом. Эти навыки сберегут ваше время и отгородят вас от Фотошопа. Ещё важнее то, что они динамические (их можно менять «на лету»), в отличие от того же jpg.

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

Похожие темы

8 простых эффектов CSS3, которые произведут впечат... CSS3 дал бесчисленные возможности для дизайнеров UX (опыта взаимодействия), а самое лучшее в этом, что самые крутые элементы действительно просты в...
Как создать анимированный липкий заголовок посредс... Мода на разные элементы дизайна приходит и уходит. Те элементы дизайна, которые решают определённые проблемы, держаться дольше других.  Элементы д...
3 клёвых CSS3 эффекта для изображений при наведени... Сейчас в арсенале веб-местера много разных техник по созданию интересных эффектов, связанных со взаимодействием пользователя с элементами веб-страни...