CSS-свойство text-shadow, его применение и эффекты.
Ещё в версии CSS2.1 появилась возможность создавать эффект тени у текста с помощью свойства text-shadow. Но на тот момент практически ни один браузер его не поддерживал. И только с активным внедрением поддержки CSS3 эту тень у текста научились отображать практически все современные браузеры. Кроме Internet Explorer’а, который даже в 9-й версии (последней на данный момент) этого не умеет.
Вот формат параметров свойства: text-shadow: x y z color, x y z color, …; где x и y – смещение тени в пикселях по горизонтальной и вертикальной оси соответственно, z – радиус размытия тени, color – цвет тени. К тексту можно применить сразу несколько эффектов тени, указывая параметры через запятую. Это позволяет, комбинируя тени разного цвета, с разным смещением, добиваться эффектов трёхмерности текста, вдавленности, свечения и других. Для наглядного представления некоторых возможностей применения text-shadow и эффектов, которые можно с его помощью получить, я подготовил страничку с несколькими примерами. Пример 1 демонстрирует простейший вариант его применения:
#text1{
...
text-shadow:0px 0px 12px black;
...
}
Здесь никакого смещения по осям не задано, получается тень прямо под текстом.
Второй пример чуть поинтереснее:
#text2{
...
left: 0%;
text-shadow:10px 10px 20px black;
-webkit-transition: 300ms linear 0s;
-moz-transition: 300ms linear 0s;
-o-transition: 300ms linear 0s;
transition: 300ms linear 0s;
}
#text2:hover {
left: 1%;
text-shadow:3px 3px 5px black;
}
Здесь мы задаём изначально большое смещение и большое размытие тени. Тогда кажется, что текст висит высоко над поверхностью страницы. Применяя псевдоселектор “:hover” мы изменяем, при наведении курсора мышки на текст, его параметры: сдвигаем текст влево на 1%, (изначально было 0%), и, в соответствии с законами оптики, уменьшаем смещение и размытие тени. Таким образом, у нас создаётся эффект, как будто текст прижимается к поверхности экрана под весом мышки. Для того, чтобы изменение происходило не скачкообразно, а плавно, для объекта #text2 мы задаём CSS3-свойство “transition” с параметрами скорости изменения в миллисекундах, плавности изменения и времени задержки до начала срабатывания.
Пример 3 демонстрирует интересный эффект, который получается при применении text-shadow в сочетании с заданием прозрачного текста через rgba(r,g,b,a), где “r,g,b” компоненты цвета в модели RGB, “a” – задаёт прозрачность от 0 до 1.
#text3{...
-webkit-transition: 300ms linear 0s;
-moz-transition: 300ms linear 0s;
-o-transition: 300ms linear 0s;
transition: 300ms linear 0s;
}
#text3:hover{
color: rgba(150,150,150, 0);
text-shadow:0px 0px 35px black;
}
Задавая прозрачный цвет и большую размытость тени, получаем эффект, как будто текст, при наведении мышки на него, размывается в пространстве и превращается в “облако”. Можно было бы просто написать ”color: transparent”, но браузер Opera не совсем корректно обрабатывает такой вариант задания свойства и текст после размытия исчезает полностью вместе с “облаком”.
В примере 4 показано, как использовать text-shadow для получения glow-эффекта, т.е., говоря по-русски, свечения.
#text4{
width: 500px;
position: absolute;
background-color: darkblue;
-webkit-transition: 300ms linear 0s;
-moz-transition: 300ms linear 0s;
-o-transition: 300ms linear 0s;
transition: 300ms linear 0s;
}
#text4:hover {
text-shadow:0px 0px 15px #3399ff, 0px 0px 35px #99ffff;
}
Здесь мы просто задаём цвет тени такой же или близкий к цвету текста. Для усиления эффекта задаём двойную тень, а фон делаем темным.
Самый интересный пример 5-й. В нём мы сочетаем эффект text-shadow с возможностями JQuery и плагина Lettering.js. Этот плагин по умолчанию (т.е. без задания каких-либо параметров) разбивает заданный ему текст на отдельные буквы и внедряет их вместо оригинального текста в изначальный объект в виде дочерних <span>-объектов. Причём, каждая буква получает класс “.char#”, где “#” – номер буквы по порядку. Это позволяет манипулировать отдельными буквами как в таблице стилей, так и с помощью JavaScript. Итак, для начала скачиваем плагин Letterin.js отсюда и подключаем JQuery и его.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text/javascript" src="jquery.lettering.js"></script>
JQuery можно скачать, а можно подключить из хостинга JS-библиотек Google (как в примере) или Яндекса. Далее простейший скипт, передающий плагину lettering.js нужный селектор, в данном случае id:
<script type="text/javascript" >
$('#text5').lettering();
</script>
Ну а теперь в таблице стилей для всех получившихся в результате работы плагина элементов <span>, дочерних для элемента “#text5″, настраиваем такой же эффект, как в примере 3. Только меняем цвет размывающей тени и скорость изменения состояния:
#text5 span{
-webkit-transition: 100ms linear 0s;
-moz-transition: 100ms linear 0s;
-o-transition: 100ms linear 0s;
transition: 100ms linear 0s;
}
#text5 span:hover{
color: rgba(102,204,255, 0);
text-shadow:0px 0px 35px #3399ff;
}
Ну и напоследок, вот онлайн-генератор текстовой тени. Там представлены различные эффекты, которые можно получить при помощи text-shadow, а получив код (Get Code), изучив и разобравшись в нем, можно потом модифицировать для своих проектов.
Popularity: 1% [?]