|
Korzystanie ze stylów CSS
Style pozwalają kontrolować większość właściwości elementów HTML, które kiedyś
można było ustawiać wyłącznie za pomocą atrybutów. Powtarzanie atrybutów w wielu
elementach było nie tylko niewygodne, ale zwykle jakakolwiek zmiana koloru lub
wyglądu strony wymagała dokonania poprawek na wszystkich stronach WWW, w każdym
elemencie.
Gdy nagle tytuły miały być zielone i pogrubione, a dotychczas były czerwone i
rozstrzelone, wtedy webmastera czekała bardzo niemiła robota - musiał ręcznie
zmieniać wygląd wszystkich tytułów.
Organizacja W3C szybko doszła do wniosku, że trzeba oddzielić układ
(konstrukcję) strony od właściwości elementów. Za pomocą języka XHTML tworzy się
więc strukturę, jak np. tabele, tytuły czy akapity, a korzystając ze stylów
nadaje się im odpowiednie właściwości i formatowanie, np. kolor, pogrubienie,
pochylenie, tła, wielkość liter i inne elementy odpowiedzialne za kształt i
wygląd.
Wystarczy więc przypisać do tytułu strony nazwę stylu, np. "glowny" i
zdefiniować w jednym miejscu, jakie właściwości ma mieć główny tytuł. Może być
pogrubiony, niebieski, napisany czcionką Arial o wielkości 16 pikseli. Wszystkie
tytuły główne mogą mieć ten sam styl zapisany w jednym pliku.
Gdy nagle trzeba zmienić wygląd tytułów, wystarczy w jednym miejscu zmienić
właściwości stylu "glowny" i efekt będzie widoczny od razu na wszystkich
stronach we wszystkich tytułach oznaczonych tym stylem. Prawda, że rewelacyjny
(i rewolucyjny) wynalazek? Takie podejście pozwala szybko zmienić kolorystykę,
kształt czy właściwości określonego stylu przypisanego konkretnym elementom HTML.
Jak zdefiniować swoje style?
Własne style możesz nazwać dowolnie, w sposób
dla Ciebie czytelny. Mogą nazywać się np. "naglowek", "akapitczerwony" lub
"pogrubienie". Aby je stworzyć musisz zadeklarować je w osobnym pliku lub wprost
na wybranej stronie WWW.
W nagłówku strony, w sekcji head umieść
swoją definicję stylu pomiędzy tagami style.
<?xml version="1.0" encoding="ISO-8859-2"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"><head>
<meta http-equiv="Content-type" content="text/xml; charset=iso-8859-2" />
<title>tytuł strony</title>
<style type="text/css"><!--
h1, td { color: green; }
.naglowek { color: red; font-size:16px; }
.pogrubiony { font-weight: bold; }
--></style>
</head><body>
<p>Dalsza treść strony, gdzie będą używane Twoje style...</p>
</body></html>
W przykładzie został zdefiniowany jeden styl dla elementów
h1 i td i
dwa style o nazwach "naglowek" i "pogrubiony". Najłatwiejszą notacją (bo style
można definiować na kilka sposobów) i chyba najczęściej spotykaną jest
przypisanie stylu do elementu HTML. Inną popularną notacją jest kropka i nazwa
stylu. Kropka określa, że styl jest selektorem klasy, czyli oznacza, że klasa
będzie miała nadaną przez nas nazwę, którą można potem użyć w definicji klasy
dla elementu HTML.
Brzmi nieco zawile? Też tak myśle. Teorią się nie przejmuj, ważniejsza jest
praktyka. Pamiętaj o kropce i za nią umieść nazwę stylu. Następnie w nawiasach
klamrowych musisz opisać jakie cechy będzie miał stworzony przez Ciebie styl.
Wszystkie tytuły h1 i komórki tabeli
td będą miały kolor zielony (color:
green;) Nagłówek ma mieć czerwony kolor (color:
red;) i wielkość 16 pikseli (font-size:
16px;). Styl pogrubiony będzie tylko pogrubiony (font-weight:
bold;).
Dowolny element HTML, który ma mieć styl naglowek powinien mieć atrybut class z
nazwą naszego stylu (ale już bez kropki):
<p class="naglowek">Nagłówek strony</p>
Bez problemu możesz ten styl przypisać kilka razy do różnych elementów na
stronie:
<p class="naglowek">Nagłówek strony</p>
<div class="naglowek">Inny nagłówek strony</div>
<a href="http://algorytmy.pl" class="naglowek">Duży link</a>
Kropka oznacza, że wszystkie elementy na stronie (polecenia XHTML), dla których
zdefiniujesz klasę "naglowek" będą miały ten styl. Gdy przypiszesz styl do
elementu XHTML, tylko te elementy mają określone właściwości (tak zrobiliśmy z
komórkami tabeli i tytułami h1)
Jak już wiesz, aby kawałek tekstu miał pogrubiony styl, wystarczy go zdefiniować
z kropką na początku:
.pogrubiony { font-weight: bold; }
Tak określony styl może się odnościć do dowolnych elementów XHTML - możesz
pogrubić akapity, tabele, linki i generalnie wszystkie tagi języka XHTML.
Dodając przed kropką nazwę elementu XHTML, możesz ograniczyć działanie tego
stylu tylko do wybranych poleceń języka XHTML. Zastosujmy pogrubienie tylko w
akapitach:
p.pogrubiony { font-weight: bold; }
I użyjmy go w praktyce:
<p class="pogrubiony">TYLKO TEN tekst zostanie
pogrubiony</p>
<div class="pogrubiony">Ten tekst nie zostanie pogrubiony</div>
<a href="http://algorytmy.pl" class="pogrubiony">Link bez pogrubienia</a>
Takie zachowanie pozwala stworzyć wiele stylów o nazwie "pogrubiony", ale każdy
będzie odnosił się tylko do określonego elementu języka HTML:
p.pogrubiony { font-weight: bold; }
br.pogrubiony { font-weight: bold; color: red; }
Łatwo zapamiętać, że brak nazwy elementu przed kropką dotyczy wszystkich tagów
HTML, a wyszczególniona nazwa przed kropką we własnej definicji stylu ogranicza
działanie stylu tylko do tego elementu języka HTML.
Jest jeszcze jeden zapis własnej definicji stylu, gdzie zamiast kropki stosuje
się znak #:
#zielony { color: green; }
Tym razem odwołanie do stylu nie następuje przez podanie atrybutu class, ale
przez identyfikator elementu, czyli atrybut id:
<p id="zielony">zielony akapit</p>
Ważną rzeczą jest aby na jednej stronie nie było dwóch elementów HTML (np. dwóch
lub więcej akapitów), które mają taką samą nazwę ID. Identyfikator jest
unikatowy. Jeżeli chcesz stosować więcej identyfikatorów musisz je np.
ponumerować:
#zielony1 { color: green; }
#zielony2 { color: green; }
#zielony3 { color: green; }
<p id="zielony1">zielony akapit</p>
<span id="zielony2">zielony akapit</span>
<p id="zielony3">zielony akapit</p>
Tutaj również można ograniczyć zakres działania stylu dla wybranego elementu
dodając jego nazwę przed definicją stylu:
p#zielony { color: green; }
W praktyce zapis z identyfikatorami id nie jest często stosowany, ponieważ z
definicji każdy element XHTML musi mieć inny identyfikator i tych styli byłoby
bardzo dużo. Natomiast styl zapisany w ten sposób ma zastosowanie w dynamicznym
HTML, a więc w powiązaniu z JavaScriptem i DOMem, gdzie odwołania do elementów
HTML możliwe są poprzez identyfikatory id.
Zdecydowanie najczęściej spotykany jest przykład pierwszy, gdzie po kropce
podajesz nazwę stylu, a w nawiasach określasz wszystkie style i parametry jakie
mają być przypisane do danej nazwy. Potem w elementach HTML wystarczy za pomocą
atrybutu class przypisać określoną nazwę
stylu, aby go użyć w dowolnym miejscu na stronie.
Dołączanie stylów
Jednym ze sposobów jest umieszczenie stylów
wprost przy elemencie, którego dotyczy korzystając z atrybutu style. Można w ten
sposób nadać konkretny styl wybranemu elementowi HTML, bez konieczności
stosowania arkusza zewnętrznego lub wewnętrznego:
<p style="color:red; font-size:16px;">
dowolny akapit
</p>
Takie rozwiązanie jest stosowane wyjątkowo, gdy trzeba zmienić wygląd jednego
elementu (lub kilku elementów) na stronie lub nadpisać wygląd konkretnego
elementu HTML, który wcześniej został zadeklarowany w stylach zewnętrznych lub
osadzonych na stronie.
Nie powinno się stosować stylów wprost w elementach HTML, ponieważ trudno je
potem znaleźć w kodzie strony i kłopotliwe jest ich poprawianie. Mimo chaosu,
jaki może wprowadzić taki zapis, jest on w praktyce dosyć często stosowany z
lenistwa, bo łatwiej dokonać zmiany stylu konkretnego elementu niż wypisywać
wszystkie style w zewnętrznym arkuszu i potem przypisywać każdy ze stylów do
poszczególnych elementów.
Definicje stylów można umieścić wprost na konkretnej stronie WWW, w sekcji
nagłówkowej strony, czyli pomiędzy tagami <head>
i </head>, np. zaraz po określeniu tytułu
dla strony:
<head>
<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
<title>Tytuł strony </title>
<style type="text/css"><!--
body, p {
font-family: Arial, sans-serif;
font-size: 14px;
}
a { text-decoration: none; }
.menu:active {color: navy; }
.menu:link {color: navy; }
.menu:visited {color: navy; }
.menu:hover {color: #3333cc; }
--></style>
</head>
Style są umieszczone wprost na konkretnej stronie WWW i nawet jeżeli ktoś
skopiuje stronę na dysk lokalny i nie będzie miał połączenia z Siecią, w dalszym
ciągu style będą w dokumencie zachowane.
To bardzo dobry sposób osadzania stylów w przypadku języków skryptowych (np. PHP),
ponieważ style można dołączyć z jednego pliku za pomocą dyrektywy include.
Nieco gorzej jest z wykorzystaniem tej metody w wypadku statycznych stron HTML,
gdyż modyfikacja stylu wymaga zmodyfikowania zapisu na wszystkich stronach
należących do witryny. Wtedy wygodniej skorzystać z metody dołączenia
zewnętrznego arkusza z dowolnego miejsca w Sieci lub z wybranego katalogu na
stronie WWW.
Zamiast osadzać style CSS na stronie można je dołączyć z zewnętrznego pliku za
pomocą elementu link:
<head>
<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
<title>Tytuł strony </title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
Można też podać pełną ścieżkę do serwera i dołączać więcej niż jeden arkusz
stylów:
<link rel="stylesheet" type="text/css" href="http://serwer1/style.css"
/>
<link rel="stylesheet" type="text/css" href="http://serwer2/style.css" />
Dołączany plik style.css powinien zawierać od razu definicje stylów, jak
poniżej:
body, p {
font-family: Arial, sans-serif;
font-size: 14px;
}
a { text-decoration: none; }
input { width: 200px; }
Ten sposób dołączania stylów jest bardzo wygodny, ponieważ w praktyce istnieje
tylko jeden plik ze stylami, który może być dołączany z dowolnej lokalizacji w
Sieci. Modyfikacje wystarczy przeprowadzać tylko w jednym pliku. Jego wadą jest
to, że podczas zapisywania strony na dysk, style mogą zostać zgubione i bez
dostępu do pliku ze stylami strona może prezentować się mało ciekawie.
Dopuszczalna jest również kombinacja zastosowania stylów z zewnętrznego pliku w
stylach znajdujących się na stronie:
<style type="text/css"><!--
@import url(http://serwer.pl/katalog/style.css)
body, p {
font-family: Arial, sans-serif;
font-size: 14px;
}
a { text-decoration: none; }
--></style>
W tym celu można skorzystać z polecenia @import dołączającego do stylów na
stronie dodatkowe style znajdujące się w pliku w dowolnym miejscu w Sieci. Style
znajdujące się poniżej dołączanego stylu mogą rozszerzyć style z pliku lub
zastąpić je na konkretnej stronie.
Co jeszcze?
Szczerze mówiąc, o stylach można napisać
całkiem sporą książkę, a przedstawione powyżej podstawy mają tylko zaznajomić
Cię z tematyką i pomóc szybko zacząć je stosować na stronach. Nie przejmuj się,
jeżeli od razu nie zrozumiesz o co w tym wszystkim chodzi. Myślę, że każdy
początkujący webmaster miał problemy ze zrozumieniem wszystkich zawiłości stylów
CSS. Mam nadzieję, że ten krótki, ale treściwy wstęp, nieco wyjaśnił Ci
posługiwanie się stylami w praktyce.
D.F.
|