# Wstęp

Uwaga: Część kursu poświęcona stylom ma ciągle charakter tymczasowy - owa tymczasowość awansowała najwyraźniej do roli stałości :-). Wynika to z tego, że przeglądarki internetowe implementują interpretację stylów stopniowo, więc przy kolejnych aktualizacjach przeglądarek można się spodziewać następnych poprawek.
Bardziej wnikliwym czytelnikom polecam lekturę tłumaczenia dość sformalizowanego Przewodnika po stylach CSS2, a także trzy anglojęzyczne źródła:

- World Wide Web Consortium - specyfikacje Cascading Style Sheets
- W3Schools - CSS Tutorial
- Index DOT Css

Języki służące do budowy stron WWW zostały uzupełnione o potężne narzędzie do formatowania dokumentów internetowych - style (CSS - Cascading Style Sheets). Jest to rewolucyjna idea, w zasadniczy sposób zwiększająca elastyczność narzędzi i możliwości autorów stron. Warto zauważyć, że style leżą także u podstaw dynamicznego HTML (z technicznego punktu widzenia jest to połączenie stylów z językami skryptowymi, np. JavaScript, a także Document Object Model). Style, zwłaszcza na najczęściej stosowanym poziomie CSS1, są niezbyt skomplikowane w konstrukcji, dając zarazem zaawansowane możliwości manipulowania postacią dokumentów, jakich brakowało w tradycyjnym języku HTML. Umiejętne stosowanie stylów pozwala całkowicie odmienić wygląd strony, nie szkodząc zarazem przeglądarkom, które stylów nie interpretują. Podkreślmy też wyraźnie, że CSS2 jest bardzo poważnym krokiem do przodu w stosunku do CSS1.

Jest to naturalny etap rozwoju języka i jego pojawienie się było łatwe do przewidzenia dla osób interesujących się głębiej edytorami tekstów, w których style zajmują bardzo eksponowane miejsce. Styl, będący zespołem kodów formatujących (jednego czy kilku), pozwala obecnie globalnie lub lokalnie zmieniać sposób formatowania wybranego fragmentu dokumentu. Style są obecnie w znacznej mierze interpretowane przez przeglądarki Netscape Communicator 4.x i 6, Internet Explorer 4-6 oraz Opera 5 i 6. Wersja 3 programu Microsoftu interpretuje je szczątkowo i w pewnej mierze odmiennie od obowiązujących obecnie zasad. Na szczęście ta przestarzała wersja jest już "wymierająca", a jej udział w rynku nie przekracza paru procent. Zwracam uwagę na norweską Operę (www.opera.com), obecnie darmową, która zrobiła największy postęp i może się pochwalić wyprzedzeniem w paru miejscach swoich wielkich konkurentów. Program ten interpretuje poprawnie polskie znaki w wersji 6.

Zwróćmy od razu uwagę na pewien istotny motyw powstania stylów. Język SGML, którego HTML jest pochodną, zajmuje się strukturą dokumentów i ich stroną semantyczną. Nie zajmuje się natomiast ich stroną wizualną, formatowaniem. HTML przekroczył tę barierę i z czysto praktycznych przyczyn od początku zaczął się rozszerzać o polecenia formatujące, dzięki którym dokumenty HTML są wizualnie dość różnorodne. Jednak ubocznym skutkiem tej sytuacji stał się "dziki wyścig" firm mających największy wpływ na rynku oprogramowania - Netscape i Microsoft, pewne swej silnej pozycji i roszcząc sobie prawo do swoistego ustawodawstwa zaczęły narzucać rozmaite rozszerzenia, interpretowane tylko przez ich przeglądarki, jak np. migotanie tekstu (NC) czy animacja Marquee (IE). Niektóre z tych rozszerzeń okazały się trafne i były sankcjonowane przez kolejne specyfikacje HTML, inne okazały się ślepym zaułkiem. Dobrym przykładem jest znacznik <font face>, który sterował czcionkami w dokumencie - w HTML 4 jest on określony jako przestarzały i odradza się jego stosowanie, zalecając przenoszenie informacji o czcionkach do stylów.

Arkusze stylów są próbą "powrotu do źródeł". Dzięki nim będzie można stopniowo rezygnować z formatowania bezpośrednio za pomocą HTML, przerzucając odpowiedzialność na style. W ten sposób HTML pozostanie w swej czystej, kanonicznej postaci i nie będzie już ryzyka niekontrolowanego rozbudowywania zestawu znaczników. Specyfikacja CSS2 jest narzędziem mocnym i wszechstronnym - problem jedynie w tym, aby ważniejsze przeglądarki poprawnie interpretowały wszystkie polecenia.

Na marginesie uwaga: jest niemal pewne, że podstawowe sposoby formatowania na zawsze pozostaną w HTML, i to z paru powodów. Po pierwsze, należy się liczyć z faktem, że niektóre egzotyczne przeglądarki nie będą sobie mogły poradzić z interpretacją stylów, po drugie zaś, miliony dokumentów w WWW są formatowane za pomocą klasycznego HTML i konieczne by było ich przetworzenie, zgodnie ze specyfikacją stylów - raczej nie jest to możliwe, więc konieczność zgodności "w dół" spowoduje, że te zaszłości będą zawsze honorowane przez przeglądarki.

Niniejszy opis powstaje na podstawie specyfikacji stylów poziomu pierwszego i drugiego (CSS1 i CSS2). Specyfikacja tego ostatniego została zaprezentowana w czerwcu 1998 roku przez World Wide Web Consortium. Organizacja skupia obecnie ok. 150 firm, wśród których znalazły się takie kompanie, jak Microsoft czy Netscape, deklarujące od pewnego czasu chęć respektowania ustaleń W3C, co jest szczególnie istotne, gdy przypomnimy sobie ich próby narzucania własnych rozwiązań. Za specyfikacje CSS odpowiada "czterech wspaniałych": Håkon Lie i Bert Bos (CSS1) oraz Håkon Lie, Bert Bos, Chris Lilley i Ian Jacobs (CSS2).

Nie uwzględniamy specyfikacji CSS3, która ma na razie nieco utopijny charakter - nieco informacji na ten temat można znaleźć w artykule Marcina Wieczorka, w numerze 2'2000 Webmastera - http://www.pckurier.pl/webmaster/2000/luty/wieczorek/css3.html.