Przejdź do treści

Filtry

W tym rozdziale dowiesz się...

Wstęp

(tylko Internet Explorer 4.0 lub nowszy!)

UWAGA! Polecenia zawarte w tym rozdziale nie wchodzą w skład specyfikacji stylów CSS 2 i są wyłącznie rozszerzeniem przeglądarki Internet Explorer 4.0 lub nowszej!

Intertet Explorer pozwala wprowadzić na stronę efektowne filtry graficzne. Dzięki nim możemy tak przekształcić zwykły tekst, aby wyglądał on na obrazek. Możemy również zastosować wiele ciekawych efektów do obrazków. Są one podobne do tych, które występują w programach graficznych do obróbki zdjęć. Wszystko to spowoduje, że nasza strona może wyglądać dużo lepiej.

Według Microsoftu filtry graficzne mogą zostać bezpośrednio zastosowane tylko do znaczników:

Natomiast jeśli chcemy zastosować je do innych znaczników (np. zwykłego tekstu), należy poprzez własności stylów obowiązkowo określić:

  • ich wysokość lub/i szerokość, np. height: 1em (uwaga: niektóre efekty zajmują więcej miejsca niż jedną wysokość linii, czyli więcej niż 1em)
  • albo ewentualnie pozycjonowanie absolutne (wystarczy podać position: absolute bez określania dokładnej pozycji)

Składnia każdego efektu jest następująca:

selektor { filter: NazwaEfektu(Parametr1=wartość, Parametr2=wartość...) }
selektor
Jeden z opisanych powyżej znaczników [zobacz także: Wstawianie stylów]
NazwaEfektu
Określa o jaki filtr nam chodzi
Parametr1, Parametr2
Oznaczają własności efektu
wartość
Określona wartość dla każdego z parametrów

Nie jest konieczne wpisywanie wszystkich parametrów, można nawet nie wpisywać żadnych, zostaną wtedy przyjęte domyślne ich wartości. Kolejność wpisywania także nie ma znaczenia. Jeśli nie podajemy żadnych parametrów, nawiasy w poleceniu również są zbędnie, tzn. wystarczy wtedy wpisać: selektor { filter: NazwaEfektu }. Poza tym niektóre efekty nie mają określonych parametrów, co oznacza, że zawsze działają tak samo.

Przezroczystość

selektor { filter: Alpha(Opacity=nieprzezroczystość, FinishOpacity=koniec, Style=styl, StartX=xp, StartY=yp, FinishX=xk, FinishY=yk) }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Natomiast inne wyrazy oznaczają:
nieprzezroczystość
Poziom nieprzezroczystości (0 - przezroczysty; 100 - nieprzezroczysty - domyślnie)
koniec
(opcjonalnie) przezroczystość końcowa (0 - przezroczysty, 100 - nieprzezroczysty)
styl
Charakterystyczny kształt przezroczystości:
  • 0 - jednolity (domyślnie)
  • 1 - liniowy
  • 2 - promieniowy
  • 3 - prostokątny
xp, yp
Współrzędna pozioma i pionowa początku obszaru przezroczystości
xk, yk
Współrzędna pozioma i pionowa końca przezroczystości

Przykład:

filter: Alpha(Opacity=50, Style=0) filter: Alpha(Opacity=50, Style=0)
filter: Alpha(Style=1) filter: Alpha(Style=1)
filter: Alpha(Style=2) filter: Alpha(Style=2)
filter: Alpha(Style=3) filter: Alpha(Style=3)


height: 1em; filter: Alpha(Opacity=50)


Poniżej interesujący efekt z użyciem pozycjonowania:

Tekst przykryty półprzezroczystym obrazkiem

filter: Alpha(Opacity=50)

Dynamiczna zmiana filtrów graficznych

Oto ciekawy przykład dynamicznej zmiany filtru graficznego za pomocą DHTML (wskaż poniższy obrazek myszką):

filter: Alpha(Opacity=50)

Aby uzyskać taki efekt, należy wpisać:

<img src="obrazek.jpg" alt="..." style="filter: alpha(opacity=50)" onmouseover="this.style.filter=''" onmouseout="this.style.filter='alpha(opacity=50)'" />

Możliwa jest również kolejność odwrotna:

Alpha(Opacity=50)

<img src="obrazek.jpg" alt="..." onmouseover="this.style.filter='alpha(opacity=50)'" onmouseout="this.style.filter=''" />

Atrybut style="filter: ..." określa początkowe ustawienie filtru; onmouseover="this.style.filter='...'" podaje zmianę po wskazaniu myszką; natomiast onmouseout="this.style.filter='...'" wywołuje powrót do ustawień początkowych po usunięciu wskaźnika myszy znad elementu [zobacz także: Zdarzenia].

Identyczna składnia obowiązuje dla pozostałych filtrów, przedstawionych na tej stronie. W ten sam sposób można również dynamicznie zmieniać inne deklaracje stylów - wtedy zamiast this.style.filter wpisujemy: this.style.cecha, gdzie cecha określa wybraną własność stylów, a po znaku równości (pomiędzy apostrofami) wpisujemy żądaną wartość atrybutu, np. this.style.color='red'
UWAGA! Dotyczy to MSIE 4.0+

Rozmazanie

selektor { filter: Blur(Add=typ, Direction=kierunek, Strength=natężenie) }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Natomiast inne wyrazy oznaczają:
typ
Określa, czy oryginalny obraz ma zostać dodany do filtru:
  • 1 - obraz zostanie dodany (domyślnie)
  • 0 - obraz nie zostanie dodany
kierunek
Kierunek rozmazania w stopniach (zgodnie z ruchem wskazówek zegara względem pionu):
  • 0 - góra
  • 45 - góra, prawo
  • 90 - prawo
  • 135 - dół, prawo
  • 180 - dół
  • 225 - dół, lewo
  • 270 - lewo (domyślnie)
  • 315 - góra, lewo
natężenie
Ilość rozmazanych pikseli

UWAGA! W Internet Explorerze 6 intensywność rozmazywania jest ogólnie większa niż w MSIE 5.

Przykład:

filter: Blur(Add=0, Direction=45, Strength=10) Blur(Add=0, Direction=45, Strength=10)


height: 1em; filter: Blur

Selektywna przezroczystość

selektor { filter: Chroma(Color=kolor) }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Natomiast kolor oznacza definicję koloru który ma stać się przezroczysty.

UWAGA! Polecenie nie działa z obrazkami, które nie obsługują przezroczystości (np. *.jpg). Przezroczystość obsługuje format *.gif.

Przykład:

Zwykły obrazekZwykły obrazek *.gif
filter: Chroma(Color=white)Chroma(Color=white)

Cień

selektor { filter: DropShadow(Color=kolor, OffX=x, OffY=y, Positive=typ) }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Natomiast inne wyrazy oznaczają:
kolor
Definicja koloru cienia
x
Liczba pikseli o które zostanie przesunięty cień w poziomie (wartości dodatnie przesuwają w prawo, ujemne - w lewo)
y
Liczba pikseli o które zostanie przesunięty cień w pionie (wartości dodatnie przesuwają w dół, ujemne - w górę)
typ
Sposób tworzenia cienia
  • 1 - cień będzie tworzony z kolorów elementu, które nie są przezroczyste (domyślnie)
  • 0 - cień będzie tworzony z koloru przezroczystego

UWAGA! Parametr Positive=0 w MSIE 5 jest wyświetlany odmiennie (błędnie) jak w MSIE 6.

Przykład:

height: 1.5em; filter: DropShadow(Color=yellow, Positive=1)

height: 1.5em; filter: DropShadow(Color=yellow, Positive=0)

Lustro

  1. Poziome:
    selektor { filter: FlipH }
  2. Pionowe:
    selektor { filter: FlipV }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Przykład:

height: 1em; filter: FlipH

height: 1em; filter: FlipV

Jarzenie

selektor { filter: Glow(Color=kolor, Strength=natężenie) }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Natomiast inne wyrazy oznaczają:
kolor
Definicja koloru jarzenia
natężenie
Intensywność efektu (od 0 do 255)

Przykład:

height: 1.5em; filter: Glow(Color=yellow)

Skala szarości

selektor { filter: Gray }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Przykład:

Zwykły obrazekZwykły obrazek
filter: Grayfilter: Gray

Negatyw

selektor { filter: Invert }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Przykład:

filter: Invert

Maska

selektor { filter: Mask(Color=kolor) }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Natomiast kolor oznacza definicję koloru maski.

Zmienia kolor przezroczystości na wskazany, natomiast wszystkie inne kolory stają się przezroczyste.

UWAGA! Polecenia działa tylko z obrazkami, na których został zaznaczony kolor przezroczysty. Przezroczystość obsługuje format *.gif (ale nie *.jpg).

Przykład:

GIF z przezroczystościąZwykły obrazek *.gif z przezroczystością
filter: Mask(Color=red)Mask(Color=red)

Rozmyty cień

selektor { filter: Shadow(Color=kolor, Direction=kierunek) }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Natomiast inne wyrazy oznaczają:
kolor
Definicja koloru cienia
kierunek
Kierunek cienia w stopniach (zgodnie z ruchem wskazówek zegara względem pionu):
  • 0 - góra
  • 45 - góra, prawo
  • 90 - prawo
  • 135 - dół, prawo
  • 180 - dół
  • 225 - dół, lewo (domyślnie)
  • 270 - lewo
  • 315 - góra, lewo

Przykład:

height: 1.5em; filter: Shadow(Color=yellow, Direction=135)

Fala

selektor { filter: Wave(Add=typ, Freq=częstotliwość, LightStrength=światło, Phase=faza, Strength=natężenie) }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Natomiast inne wyrazy oznaczają:
typ
Określa, czy oryginalny obraz ma zostać dodany do filtru:
  • 1 - obraz zostanie dodany
  • 0 - obraz nie zostanie dodany (domyślnie)
częstotliwość
Liczba fal
światło
Natężenie światła (od 0 do 100)
faza
Przesunięcie fazowe początku fali (od 0 do 100)
natężenie
Intensywność efektu

Przykład:

filter: Wave(Add=1, Freq=5, LightStrength=0, Strength=15) Wave(Add=1, Freq=5, LightStrength=0, Strength=15)
filter: Wave(Add=0, Freq=5, LightStrength=50, Strength=15) Wave(Add=0, Freq=5, LightStrength=50, Strength=15)

height: 1em; filter: Wave(Freq=2, Strength=2)

Prześwietlenie

selektor { filter: Xray }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Zmienia głębię kolorów i wyświetla element jako czarno-biały (jak na prześwietleniu rentgenowskim).

Przykład:

filter: Xray

Światło

UWAGA! W poleceniach dotyczących światła nie można pomijać parametrów, ani zmieniać ich kolejności wpisywania!

  1. Otaczające:
    <img id="identyfikator" style="filter: Light" src="lokalizacja obrazka" alt="..." />
    <script type="text/jscript">
    // <![CDATA[
    var ms = navigator.appVersion.indexOf("MSIE");
    if (ms > 0 && parseInt(navigator.appVersion.substring(ms + 5, ms + 6)) >= 4)
    document.all.identyfikator.filters.Light.addAmbient(R,G,B, natężenie);
    // ]]>
    </script>
    gdzie:
    identyfikator
    Unikatowa nazwa elementu, która nie może się powtórzyć w tym samym dokumencie. Może składać się tylko z liter, cyfr oraz znaków podkreślnika ("_"), ale nie może rozpoczynać się cyfrą!
    lokalizacja obrazka
    Lokalizacja na dysku, gdzie znajduje się żądany obrazek
    R, G, B
    Składowe czerwona, zielona, niebieska koloru światła (liczby od 0 do 255) [zobacz: Kolory]
    natężenie
    Intensywność

    Przykład:

    filter: Light
  2. Stożkowe:
    <img id="identyfikator" style="filter: Light" src="lokalizacja obrazka" alt="..." />
    <script type="text/jscript">
    // <![CDATA[
    var ms = navigator.appVersion.indexOf("MSIE");
    if (ms > 0 && parseInt(navigator.appVersion.substring(ms + 5, ms + 6)) >= 4)
    document.all.identyfikator.filters.Light.addCone(xp,yp,zp, xk,yk, R,G,B, natężenie, rozproszenie);
    // ]]>
    </script>
    gdzie:
    identyfikator
    Unikatowa nazwa elementu, która nie może się powtórzyć w tym samym dokumencie. Może składać się tylko z liter, cyfr oraz znaków podkreślnika ("_"), ale nie może rozpoczynać się cyfrą!
    lokalizacja obrazka
    Lokalizacja na dysku, gdzie znajduje się żądany obrazek
    xp, yp, zp
    Położenie w przestrzeni źródła światła - współrzędna pozioma, pionowa i wysokość nad obrazkiem
    xk, yk
    Położenie na płaszczyźnie obrazka punktu oświetlanego (zogniskowania)
    R, G, B
    Składowe czerwona, zielona, niebieska koloru światła (liczby od 0 do 255) [zobacz: Kolory]
    natężenie
    Intensywność
    rozproszenie
    Kąt rozproszenia ("rozrzutu") światła w stopniach (od 0 do 90)

    Przykład:

    filter: Light
  3. Punktowe:
    <img id="identyfikator" style="filter: Light" src="lokalizacja obrazka" alt="..." />
    <script type="text/jscript">
    // <![CDATA[
    var ms = navigator.appVersion.indexOf("MSIE");
    if (ms > 0 && parseInt(navigator.appVersion.substring(ms + 5, ms + 6)) >= 4)
    document.all.identyfikator.filters.Light.addPoint(x,y,z, R,G,B, natężenie);
    // ]]>
    </script>
    gdzie:
    identyfikator
    Unikatowa nazwa elementu, która nie może się powtórzyć w tym samym dokumencie. Może składać się tylko z liter, cyfr oraz znaków podkreślnika ("_"), ale nie może rozpoczynać się cyfrą!
    lokalizacja obrazka
    Lokalizacja na dysku, gdzie znajduje się żądany obrazek
    x, y, z
    Położenie w przestrzeni źródła światła - współrzędna pozioma, pionowa i wysokość nad obrazkiem
    R, G, B
    Składowe czerwona, zielona, niebieska koloru światła (liczby od 0 do 255) [zobacz: Kolory]
    natężenie
    Intensywność

    Przykład:

    filter: Light

Wykorzystując Dynamiczny HTML (DHTML), można stworzyć nawet takie "cuda"!

Łączenie efektów

selektor { filter: Efekt1 Efekt2... }
gdzie selektor oznacza "specyficzny" znacznik (koniecznie zobacz: Wstęp).

Natomiast wyrazy: Efekt1, Efekt2 oznaczają przedstawione powyżej filtry graficzne.

Wszystkie powyższe filtry można ze sobą łączyć, stosując je do tego samego elementu. Dzięki temu uzyskamy jeszcze ciekawszy efekt.

Uwaga! Kolejność wpisywania efektów w poleceniu zwykle ma znaczenie na końcowy wygląd elementu.

Przykład:

height: 2em; filter: Wave(Strength=2) Glow Shadow