Текстовая тень в CSS
Эта статья учебника будет посвящена такой теме как добавление тени и множественной тени к текстовой информации. В CSS 3 за это отвечает свойство text-shadow, которое в настоящее время имеет широкое применение на веб-страницах.
Синтаксис этого свойства следующий:
text-shadow : h-shadow (горизонтальная тень) v-shadow (вертикальная тень) blur-radius (радиус размытия) color (цвет);
К обязательным значениям относятся только h-shadow (горизонтальная тень) и "v-shadow (вертикальная тень), значение радиуса размытия указывать необязательно, как и цвет тени (по умолчанию чёрный).
Для лучшего восприятия данная информация собрана в таблицу:
Значение | Описание |
---|---|
none | Тень у элемента отсутствует. Это значение по умолчанию. |
h-shadow | Обязательное значение. Задаёт расположение горизонтальной тени. Допускается использование отрицательных значений. |
v-shadow | Обязательное значение. Задаёт расположение вертикальной тени. Допускается использование отрицательных значений. |
blur-radius | Необязательное значение. Задаёт радиус размытия. По умолчанию значение 0. |
color | Необязательное значение. Задаёт цвет тени (Имя цвета | HEX | RGB(A) | HSL(A)). Значением по умолчанию является черный цвет. |
Давайте рассмотрим пример добавления текстовой тени к абзацу (элемент <p>):
<!DOCTYPE html> <html> <head> <title>Пример использования свойства text-shadow в CSS</title> <style> p { color: #fff; /* устанавливаем цвет текста белый*/ text-shadow: 1px 1px 4px #000; /* размещаем текстовую тень*/ } p::selection { /* описание псевдоэлемента, который позволяет стилизовать выделенный пользователем текст */ background-color: orange; /* устанавливаем цвет заднего фона */ text-shadow: 1px 1px 4px #fff; /* размещаем текстовую тень*/ color: #000; /* устанавливаем цвет текста черный */ } p::-moz-selection { /* описание псевдоэлемента для браузера Firefox (дублируем стили) */ background-color: orange; /* устанавливаем цвет заднего фона */ text-shadow: -1px -1px 4px #fff; /* размещаем текстовую тень*/ color: #000; /* устанавливаем цвет текста черный */ } </style> </head> <body> <p>Текст с добавленной тенью.</p> <p>Текст с добавленной тенью.</p> </body> </html>
В этом примере мы для всех азацев (элемент <p>) установили цвет текста белый, а для текстовой тени (свойство text-shadow) установили значения для расположения горизонтальной и вертикальной тени равными 1 пиксель, а радиус размытия установили равным 4 пикселям.
Кроме того, с использованием псевдоэлемента ::selection задали следующие стили для всех абзацев при выделении текста пользователем: цвет текста черный, цвет заднего фона оранжевый, значения для расположения горизонтальной и вертикальной тени установили равными -1 пиксель (тень сдвигается в противоположную сторону), а радиус размытия установили равным 4 пикселям.
Результат нашего примера:
Множественная текстовая тень
Допускается добавление нескольких текстовых теней к элементу, для этого необходимо добавить дополнительное значение тени, либо теней, разделяя их при этом запятыми. Множественные тени наносятся по z-оси спереди назад (с первой заданной тенью сверху).
Пример блока объявлений для множественной тени:
.multipleShadow { text-shadow: -2px 3px 1px #777, 1px 2px 3px red; /* добавляем множественную тень */ }
Давайте рассмотрим следующий пример:
<!DOCTYPE html> <html> <head> <title>Пример создания множественной текстовой тени</title> <style> .test { text-align: center; /* устанавливаем горизонтальное выравнивание текста по центру */ line-height: 150px; /* задаем высоту строки */ text-shadow: 0 0 4px white, 0 -5px 4px violet, 2px -10px 6px indigo, -2px -15px 11px blue, 2px -25px 18px green, -2px -40px 25px yellow, 2px -60px 33px orange, 0px -85px 40px red; /* используем 8 теней в одном объявлении */ } .test2 { text-shadow: 6px 6px 2px rgba(255, 0, 0, 0.5); /* устанавливаем тень смещенную вправо */ } .test3 { text-shadow: -6px 6px 2px rgba(0, 255, 0, 0.5); /* устанавливаем тень смещенную влево */ } .test4 { text-shadow: 0px 0px 6px rgba(0, 0, 255, 0.5); /* используем только радиус размытия, получая неоновый эффект */ } </style> </head> <body> <div class = "test">Радужный текст</div> <div class = "test2">Текст с добавленной тенью</div> <div class = "test3">Текст с добавленной тенью</div> <div class = "test4">Текст с добавленной тенью</div> </body> </html>
В данном примере мы применили множественную тень (8 теней) к первому элементу, установили для него высоту строки 150px (свойство line-height) и задали горизонтальное выравнивание по центру (свойство text-align со значением center). Для следующих блоков указали как положительное значение для горизонтальной тени, так и отрицательное, благодаря чему тень смещается в левую, а не правую сторону.
Для последнего блока мы установили радиус размытия 6px, а значения горизонтальной и вертикальной тени указали 0px, что придает некий неоновый эффект.
Вопросы и задачи по теме
Перед тем как перейти к изучению следующей темы пройдите практическое задание:
- Для выполнения задания вам понадобится скачать архив и скопировать содержимое архива (HTML файл) в любую папку на вашем жестком диске:
- Используя полученные знания составьте следующую HTML страницу:
Если у Вас возникают трудности при выполнении практического задания, Вы всегда можете открыть пример в отдельном окне и проинспектировать страницу, чтобы понять какой код CSS был использован.
Кажется, вы используете блокировщик рекламы :(
Этот ресурс не является коммерческим проектом и развивается на энтузиазме автора сайта, который посвящает все свое свободное время этому проекту.
Добавьте, пожалуйста, basicweb.ru в исключения блокировщика рекламы, этим вы поможете развитию проекта.