CSS-фильтры для Internet Explorer

Источник: Bredni

Так уж повелось со времен царя Гороха, что именно столь часто порицаемая корпорация Microsoft является в некотором роде двигателем прогресса. Само собой разумеется, что броузер Internet Explorer служит тому подтверждением - именно в нем наиболее развита поддержка Cascade Style Sheets, и именно IE предоставляет в распоряжение веб-дизайнера наибольшее по сравнению с другими броузерами количество CSS-свойств. Есть и обратная сторона медали - расширения CSS, реализованные Microsoft'ом, обходят стороной другие броузеры. Впрочем, страница, которая выглядит одинаково в любом броузере - это пустая страница. Нужно решить для себя, под что "затачивать" дизайн. Если вы выберете Internet Explorer, то материал данной статьи вам пригодится. 
Современные версии Internet Explorer поддерживают ряд real-time фильтров - и графических, и текстовых. Раньше такие вещи нужно было делать в Photoshop'е или линуксовом GIMP, а теперь пользователь, не знакомый с этими продуктами, может использовать эффекты размывания изображения, затенения текста, и многое другое - о чем речь пойдет далее.
Если вы не работали раньше с CSS, то прочтите краткую "инструкцию по применению". Итак, использовать CSS-свойства можно тремя способами. Первый - описывать стили в секции HEAD HTML-документа. Вот как это выглядит на примере:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>

<style>
.ParaHeader{
font-size: larger;
color: brown;
text-align: center;}
</style> 

</head>

<body>

<p class="ParaHeader">
Просто абзац. 
</p>

</body>
</html>

Вначале мы описали новый класс, и назвали его ParaHeader (перед названием ставится точка). Этот класс задает размер шрифта равным larger, коричневый цвет, и выравнивание по центру. Затем, уже в BODY документа, мы используем описанный класс для форматирования параграфа (абзаца), присвоив тэгу <P> класс ParaHeader. Теперь текст "Просто абзац" будет отформатирован согласно заданным в классе параграфа свойствах. 
Другой способ использования CSS - задание свойств непосредственно в тэгах. Таким образом, предыдущий пример можно записать вот так:

<p style="font-size: larger; color: brown; text-align: center;">
Просто абзац. 
</p>

Отметим, что предварительно описывать класс в этом случае не нужно. И наконец, последний способ - можно описывать классы в отдельном файле (*.css), и подключать этот файл к HTML-документу. 

Пример:

В файле "colordef.css" задаем свойства документа (цвета ссылок, фона и текста):

A:link { color: #FFFFFF }
A:visited { color: #C0C0C0 }
A:active {text-decoration: none; color: "#ffcc00"}
A:hover {text-decoration: none; color: "#ccffff"}
body {background: #722C70; color: #FFFFFF}

Далее, в test.htm в секции HEAD подключим CSS-документ:

<link rel="stylesheet" type="text/css" href="colordef.css">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>

<link rel="stylesheet" type="text/css" href="colordef.css">

<title>test</title>

<a href="http://www.altavista.com">Altavista</a><br>
<a href="http://www.rambler.ru">Rambler</a>

</body>
</html>

Таким образом, вы можете с помощью одного CSS-файла задавать оформление более чем одной странице - достаточно только сослаться на *.css-документ. Теперь, когда вы знаете все методы работы с CSS, давайте перейдем к рассмотрению фильтров, которые и являются основной темой нашей статьи. 
Конструкция, которую мы будем использовать для применения фильтров, будет примерно такой:

.имя_класса {filter: имя_фильтра(параметры фильтра)}

А затем, уже в BODY, присвоим класс контейнеру DIV, в который заключим подвергаемые эффекту данные. Вот как можно, например, затенить текст:

В HEAD:

<style>
.shad{filter: shadow(Color="#000000", Direction="3")}
</style>

В BODY:

<div class="shad" style="width:100%; height:8%; font:30pt" align="center">
ТЕКСТ С ТЕНЬЮ
</div>

Получаем то, что изображено на рис.1


Рисунок 1

Синтаксис же этого фильтра таков:

Shadow (color=значение, direction=значение;), 
где color - цвет тени, а direction - ее направление, выраженное в градусах. Эффекта тени можно добиться и при помощи эффекта с несколько иным синтаксисом: 
DropShadow(color=значение, OffX=значение, OffY=значение, positive=значение), 
где color - цвет тени, OffX - ее смещение от текста относительно оси X, OffY - то же, но для Y-оси, и positive указывает на направления смещения - вверх или вниз (0 или 1).

Другой хороший фильтр - Glow, то бишь "сияние" - рисует цветной ореол по контуру текста. Синтаксис:
glow(strength=значение, color=значение;) - здесь strength задает интенсивность сияния, а цвет - его значение. Пример (рис. 2):

В HEAD:

<style>
.glow{filter: glow(Strength=50, color="white";)}
</style> 

В BODY:

<div class="glow" style="width:100%; height:8%; font:30pt" align="center">
СТАЛЬНОЙ РАССВЕТ
</div>


Рисунок 2

Как видите, получается весьма стильно выглядящая "шапка" страницы, и это совершенно без применения графики! Однако, в отличном от IE броузере эту красоту никто не увидит... Далее в тексте я буду приводить только синтаксис фильтров, чтобы не повторять очевидное.
Еще два фильтра, FlipH и FlipV, переворачивают текст (рис. 3), при этом первый поворачивает символы в строке, "отзеркаливая" текст, а FlipV - переворачивает по вертикали с ног на голову, не меняя порядок. Синтаксис: FlipH или FlipV (пример описания класса: .FlipH{filter:FlipH;})


Рисунок 3


Фильтр Mask (рис. 4) отображает текст так, будто бы он выделен мышью. Формат: Mask(Color="значение"); В Color вы задаете цвет, который будет окружать текст. Оставляя в стороне незначительные остальные текстовые эффекты, обратимся к графическим. Использовать их надо так - описываем в HEAD класс, а затем в тэге IMG добавляем class="имя_класса". Либо, что еще проще:

<img src="имя_файла style="filter:имя фильтра(параметры)">


Рисунок 4

Вначале в качестве образца приведу изображение с моего сайта (рис. 5) - как оно выглядит в оригинале.


Рисунок 5

Теперь применим к нему эффект Alpha, который затуманит изображение (рис. 6). 


Рисунок 6

Синтаксис таков:
Alpha(Opacity=значение, FinishOpacity=значение, Style=значение, StartX=значение, StartY=значение, FinishX=значение, FinishY=значение). 
Здесь Opacity - начальная степень матовости, затуманенности в пределах от 0 до 100. Чем меньше значение, тем больше проявляется действие эффекта. FinishOpacity - конечная opacity. Эти два параметра задают градиентные компоненты эффекта. 
Опции StartX/Y, FinishX/Y - устанавливают границы действия эффекта. Точнее, если взять, к примеру, ось X, то до пиксела StartX используется начальная Opacity, затем между StartX и FinishX идет градиент, а после FinishX - Finish Opacity.
Последний параметр - Style - задает стиль эффекта. Возможные значения: 0 - простое изменение opacity, 1 - линеарный градиент, 2 - овальный, 3 - прямоугольный.

Фильтр Blur - размазывание (рис. 7).



Рисунок 7

Синтаксис таков: 
Blur(add=значение, direction=значение, strength=значение). 
Direction - значение в градусах, выражающее угол размазывания пикселов. Strength - сила размазывания. Add - опция, которая может принимать два значения: 0 и 1. 0 - обычное размытие, 1 - так называемый motion blur, т.е. создание следа движения. 
Invert - один из самых эффектных фильтров, инвертирует цвета изображения (рис. 8).


Рисунок 8

Синтаксис прост: Invert, и все. Пример: 
<img src="рис_5.jpg" style="filter:Invert">. 

Похожий эффект производит фильтр XRay, или рентген. А Grey конвертирует изображение в градации серого цвета. Оба фильтра, как и Invert, параметров не имеют. 
Вот такие они, эффекты от Internet Explorer. Построив весь дизайн на них, можете махнуть рукой на пользователей Netscape или Opera, и утешать себя мыслью, что все-таки IE - самый популярный броузер в мире. С другой стороны, такие безобидные вещи, как тень от текста или легкое сияние над буквами придают странице примечательный вид, и было бы странным не использовать их изредка - там, где это действительно нужно… 


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=8023