Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #73, ДЕКАБРЬ 2006 г.

специи по вкусу

ВЯЧЕСЛАВ БАЕВ

Спецвыпуск: Хакер, номер #073, стр. 073-010-7


[решение.]

Существует несколько способов создания теней для текста. Вот некоторые из них.

1 Нарисовать в графическом редакторе.

Достоинства и недостатки такого способа очевидны.

2 «Стандартный» путь.

ЛИСТИНГ

SPAN.glow {

background: white;

color: white;

text-shadow: black 0px 0px 5px;

}

Говорят, что эта конструкция должна работать, но, к сожалению, в настоящее время браузеры «идут в сад».

3 Фильтры.

Достаточно мощная вещь, но «в сад идут» стандарты, а реально работает только в IE.

ЛИСТИНГ

IE DropShadow filter

4 CSS: позиционирование боксов. Самый удобоваримый способ.

HTML:

ЛИСТИНГ

<p class="h1">TEXT and SHADOW. Пример текста с тенью.

<span>TEXT and SHADOW. Пример текста с тенью.</span></p>

CSS:

ЛИСТИНГ

.h1 {

text-align: left;

font-size: 36px;

line-height: 36px;

font-family: Georgia, serif;

font-weight: bold;

position: relative;

color: #999;

}

.h1 span {

position: absolute;

top: -4px;

left: -3px;

padding-right: 3px;

color: #000;

}

Позиционируешь содержимое тэга <span> относительно параграфа со смещением на 4px вверх и 3px влево. Величину padding-right задаешь равной смещению влево, иначе возможна ситуация, когда тень «обгонит» текст. Так как дублирование текста — не самый лучший вариант для пользователей текстовых или устаревших браузеров, то «дубль» рекомендуется добавлять скриптами (javascript или определять браузер посетителя на стороне сервера).

5 CSS: генерируемое содержимое.

Следующие два примера отнюдь не лучше предыдущего, просто было интересно поиграть свойствами :before и :after. Отличия: во-первых, они не работают в IE, во-вторых, в качестве «дубля» выступает значение атрибута, что исключает повтор текста в «академическом дизайне», хотя пользователь и получит при этом лишние байты.

HTML:

ЛИСТИНГ

<p class="h2">TEXT and SHADOW. Пример текста с тенью.

<span title="TEXT and SHADOW. Пример текста с тенью.">

</span></p>

CSS:

ЛИСТИНГ

.h2 {

text-align: left;

font-size: 36px;

line-height: 36px;

font-family: Georgia, serif;

font-weight: bold;

position: relative;

color: #000;

}

/* Дальше IE уже ничего не увидит, ему отдаем

текст без тени */

html>body .h2 {color: #999;}

.h2 span {

position: absolute;

left: -3px;

top: -4px;

padding-right: 3px;

color: #000;

}

.h2 span:after {

content: attr(title);

}

А теперь сделаем две тени.

HTML:

ЛИСТИНГ

<p class="h3" title="TEXT and SHADOWS">TEXT and SHADOWS</p>

CSS:

ЛИСТИНГ

.h3 {

font-size: 36px;

font-style: italic;

line-height: 36px;

font-family: Georgia, serif;

font-weight: bold;

color: #000;

}

/* Дальше IE уже ничего не увидит, ему отдаём

текст без теней */

html>body .h3 {color: #999;}

.h3:after {

content: attr(title);

color: #000;

display: block;

margin-top: -40px;

/*

-76px для двухстрочного текста,

-112px для трехстрочного

и т.д. (шаг = line-height)

*/

margin-left: -3px;

}

.h3:before {

content: attr(title);

color: #ccc;

display: block;

margin-bottom: -40px;

/*

значение также зависит от

количества строк

*/

margin-left: 3px;

Назад на стр. 073-010-6  Содержание  Вперед на стр. 073-010-8