Home Saga o CSS Oficjalny pakiet testowy CSS W3C Nie używajcie własnych nagłówków DTD
CSS WG - Członkowie grupy Pakiet testowy selektorów - Archiwa PROSTY INTERFEJS API DLA CSS
Lokalizacja: http://pressrelease24.com/csssaga.htm
Dokument ten jest tłumaczeniem "CSS Saga". Przekład ten nie jest przekładem normatywnym i może zawierać błędy wynikające z tłumaczenia. Status normatywny posiada jedynie wersja w języku angielskim na stronie W3C http://www.w3.org/Style/LieBos2e/history/ Dokument jest chroniony prawem autorskim.
Rozdział 20 książki "Cascading Style Sheets, designing for the Web" autorstwa Håkona Wiuma Lie'a oraz Berta Bosa (wydanie drugie, 1999, Addison Wesley, ISBN 0-201-59625-3)
Saga o CSS rozpoczyna się w 1994 roku. Jeden z autorów tej książki pracował wtedy w instytucie CERN - kolebce Internetu. Sieć zaczyna być wykorzystywana jako platforma do publikacji elektronicznych. Brakuje jednak jednego z kluczowych elementów platformy - nie ma możliwości dodania stylów do dokumentów. Przykładowo, brak jest możliwości zaimplementowania na stronie internetowej typowego dla gazet układu strony. Doświadczenia Håkona zdobyte podczas prac nad spersonalizowanymi prezentacjami prasowymi w MIT Media Laboratory, pozwoliły mu dostrzec potrzebę stworzenia internetowego języka arkuszy stylów.
Arkusze stylów w przeglądarkach nie były całkowicie innowacyjnym pomysłem. Rozdzielenie struktury i prezentacji treści w dokumencie było celem języka HTML od czasu jego powstania w 1990 roku. Tim Berners-Lee napisał NeXT, swoją przeglądarkę/edytor, w taki sposób, aby możliwe było definiowanie stylów przy pomocy prostego arkusza stylów. Tim nie opublikował jednak składni arkuszy stylów, uważając, że każda przeglądarka powinna sama określać jak najlepiej wyświetlać strony swoim użytkownikom. Inne przeglądarki, między innymi Viola (1991) autorstwa Peia Weia oraz przeglądarka Harmony (1993) (System Hyper-G system był jednym z wczesnych konkurentów Internetu) dla systemu Hyper-G miały podobne języki stylów.
Jednak zamiast oferować bardziej rozbudowane arkusze stylów nowsze przeglądarki posiadały coraz mniej i mniej opcji umożliwiających modyfikację stylów. W 1993 roku na rynek weszła NCSA Mosaic, przeglądarka, dzięki której sieć stała się popularna. Pod względem stylów był to jednak krok wstecz, ponieważ umożliwiała ona użytkownikom jedynie zmianę niektórych kolorów i czcionek.
W międzyczasie projektanci stron www narzekali na brak wystarczającego wpływu na wygląd tworzonych przez siebie stron. Jednym z pierwszych pytań jakie zadawał początkujący projektant stron było pytanie o możliwość zmiany koloru i kroju czcionki danego elementu. W tym czasie język HTML, zresztą słusznie, nie oferował takiej opcji. Poniższy fragment pochodzi z wiadomości wysłanej na listę mailową www-talk na początku 1994 roku. Daje on pewne wyobrażenie o napięciu między projektantami i programistami w tamtym okresie:
(Wiadomość zaczerpnięta z archiwum listy www-talk.)
W gruncie rzeczy przez ostatni rok stykałem się z hordami (dosłownie) użytków, którzy chcieliby - uwaga, to niesamowite - móc kontrolować wygląd swoich dokumentów w sposób równie trywialny jak w programach TeX, Microsoft Word czy innych popularnych edytorach tekstu. Z wielą przyjemnością mogłem poinformować ich, że niestety, ale mają przechlapane.
Autorem tej wiadomości był Marc Andreessen, jeden z programistów odpowiedzialnych za stworzenie NCSA Mosaic. Później Marc został współzałożycielem firmy Netscape i od tego czasu jego poglądy na temat formatowania, o ile rzeczywiście takie były, uległy zmianie. 13 października 1994 roku Marc Andreessen ogłosił na liście www-talk udostępnienie do testów pierwszej wersji beta przeglądarki Mozilla (która później przeistoczyła się w Netscape Navigatora). Wśród nowych znaczników obsługiwanych przez przeglądarkę znajdował się znacznik center, a kolejne miały zostać wprowadzone wkrótce.
Na trzy dni przed udostępnieniem przez firmę Netscape nowej przeglądarki, Håkon opublikował pierwszy szkic roboczy Kaskadowych Arkuszy Stylów HTML. Za kulisami, Dave Raggett (główny architekt języka HTML 3.0) zachęcał do publikacji szkicu przed nadchodzącą konferencją "Mosaic and the Web" w Chicago. (Konferencja "Mosaic and the Web" odbyła się w dniach 17-20 października 1995 roku. Była to druga konferencja w cyklu nazwanym później WWW Conference Series)Dave zdał sobie sprawę, że język HTML nigdy nie powinien zamienić się w język formatowania stron. Istniała konieczność stworzenia oddzielnego mechanizmu, który mógłby spełnić wymagania projektantów stron. Chociaż pierwsza wersja dokumentu była niedopracowana, to stała się dobrą podstawą do dyskusji.
Jedną z osób, które wypowiedziały się na temat pierwszego szkicu stylów CSS był Bert Bos, współautor tej książki. W tamtym czasie Bert zajmował się tworzeniem Argo, wysoce modyfikowalnej przeglądarki obsługującej arkusze stylów, i zdecydował się podjąć współpracę z Håkonem. (Przeglądarka Argo była częścią projektu mającego na celu udostępnienie Internetu naukowcom z kierunków humanistycznych. Jedną z opcji były wtyczki (nazywane apletami), które przeglądarka wprowadziła wcześniej niż Netscape)Z perspektywy dzisiejszych stylów CSS obie propozycje wyglądają odmiennie, ale nietrudno rozpoznać w nich oryginalne pomysły.
Jedną z cech charakterystycznych języka stylów Argo była jego ogólność, umożliwiająca odwołania do innych niż tylko HTML języków znaczników. Stało się to również celem projektowanych stylów CSS i słowo "HTML" wkrótce usunięto z nazwy specyfikacji. Argo oferowała również inne zaawansowane opcje, które nie znalazły się w pierwszej wersji stylów CSS. Były to przede wszystkim selektory atrybutów oraz tekst generowany, które musiały poczekać na CSS2.
W tamtym okresie "Kaskadowe Arkusze Stylów" nie były jedyną propozycją języka stylów. Był też język z przeglądarki Viola autorstwa Pei Wei, a już w czerwcu 1993 r. Robert Raisch z wydawnictwa O'Reilly napisał kolejny. Był też DSSSL, złożony język stylów i przekształceń opracowywany przez ISO w celu drukowania dokumentów SGML. DSSSL mógłby zapewne być stosowany w języku HTML. Jednak style CSS wyróżniały się jedną opcją: brały pod uwagę fakt, że w sieci styl dokumentu nie może być określany wyłącznie przez autora strony lub jej użytkownika, a ich oczekiwania należałoby w jakiś sposób połączyć (niczym w kaskadzie). W gruncie rzeczy nie należało pogodzić nie tylko oczekiwania autorów i użytkowników, ale również możliwości wyświetlania danego urządzenia i przeglądarki.
Zgodnie z planem wstępna wersja stylów CSS została zaprezentowana podczas konferencji na temat Internetu w Chicago w listopadzie 1994 roku. Ich prezentacja podczas Dnia Projektantów wywołała burzliwą dyskusję. Po pierwsze, idea równowagi między oczekiwaniami autora i użytkownika była czymś nowym. Fikcyjny zrzut ekranu przedstawiał suwak z oznaczeniem "użytkownik" na jednym jego końcu i "autor" na drugim. Przeciągając suwak użytkownik mógł wpływać na połączenie swoich własnych ustawień z tymi określonymi przez autora strony. Po drugie, niektórzy postrzegali style CSS jako zbyt proste w stosunku do przeznaczonego im zadania. Argumentowano, że formatowanie dokumentów wymaga mocy kompletnego języka programowania. Style CSS obrały całkowicie przeciwny kierunek, podkreślając wagę prostego formatu.
Style CSS zaprezentowano ponownie podczas kolejnej konferencji na temat Internetu w kwietniu 1995 roku. (WWW3, czyli trzecia konferencja w cyklu, odbyła się w dniach 10-14 kwietnia 1995 r. w Darmstadt w Niemczech)Zarówno Bert jak i Håkon byli obecni (właściwie to wtedy po raz pierwszy spotkaliśmy się twarzą w twarz) i tym razem byli w stanie zaprezentować implementacje. Bert przedstawił obsługę arkuszy stylów w przeglądarce Argo, zaś Håkon zaprezentował wersję przeglądarki Arena, którą zmodyfikowano tak, aby obsługiwała style CSS. Arena została napisana przez Dave'a Raggetta jako narzędzie do testowania nowych pomysłów, z których jednym były właśnie arkusze stylów. To, co zaczęło się jako prezentacja techniczna zakończyło się polityczną debatą o równowadze praw autora i czytelnika. Zwolennicy "autorów" argumentowali, że ostatecznie to autor musi decydować o wyglądzie dokumentów. Przykładowo, mogą istnieć prawne regulacje dotyczące wyglądu etykiet z ostrzeżeniami, więc użytkownik nie powinien mieć możliwości zmiany rozmiaru czcionki takich ostrzeżeń. Opozycja, do której należą też autorzy tej książki, utrzymywała, że użytkownik, którego uszy i oczy są ostatecznym narzędziem odczytującym informacje, powinien mieć ostatnie słowo w przypadku różnicy zdań.
Nie zważając na polityczne potyczki, prace nad techniczną stroną przedsięwzięcia trwały. W maju 1995 r. powstała lista mailowa www-style, a dyskusje na niej prowadzone niejednokrotnie wpływały na rozwój specyfikacji stylów CSS. Trzy lata później archiwum listy zawierało już ponad 4000 wiadomości.
Również w 1995 roku powstała organizacja World Wide Web Consortium (W3C). Wiele firm dołączyło do Konsorcjum i organizacja szybko okrzepła. Warsztaty na rozmaite tematy okazały się skutecznym sposobem organizacji spotkań i debat o przyszłym rozwoju technologii. Zadecydowano więc, że należy zorganizować warsztaty o tematyce związanej z arkuszami stylów. Personel techniczny W3C zajmujący się arkuszami stylów (czyli dwaj autorzy tej książki) pracowało wtedy w Sophia-Antipolis na południu Francji, gdzie W3C założyło swoją europejską siedzibę. Południe Francji to atrakcyjne miejsce na przeprowadzenie warsztatów, ale ponieważ większość uczestników mieszkała w USA zdecydowano, że spotkanie odbędzie się w Paryżu, ze względu na lepsze połączenia lotnicze. Warsztaty były też eksperymentem mającym sprawdzić, czy W3C jest w stanie zorganizować spotkania poza terenem USA. Rzeczywiście, okazało się to możliwe, a warsztaty były kamieniem milowym na drodze do zapewnienia arkuszom stylów należnego im miejsca w sieci. Wśród uczestników znalazł się Thomas Reardon z Microsoftu, który zobowiązał się wprowadzić obsługę stylów CSS w kolejnych wersjach przeglądarki Internet Explorer.
Pod koniec 1995 roku W3C powołało Komisję Rewizyjną do spraw języka HTML (HTML ERB), która miała zatwierdzać przyszłe specyfikacje HTML. Ponieważ arkusze stylów znajdowały się w sferze zainteresowań członków nowej grupy, prace nad specyfikacją CSS skupiły się na uzyskaniu przez nią statusu Rekomendacji. Do członków HTML ERB należał Lou Montulli z firmy Netscape. Po tym jak Microsoft oznajmił, że wprowadzi obsługę stylów CSS w swojej przeglądarce, niezbędne była też współpraca ze strony Netscape'a. W przeciwnym wypadku przeglądarki obsługujące różne specyfikacje mogłyby doprowadzić do rozłamu w sieci. W grudniu 1996 roku, po długich i ciężkich bataliach na forum HTML ERB, pierwsza wersja stylów CSS uzyskała status Rekomendacji W3C.
W lutym 1997 roku stylami CSS zajęła się oddzielna grupa robocza pod nadzorem W3C. Podjęto prace nad elementami nieobecnymi w stylach CSS1. Prezesem grupy został Chris Lilley, Szkot, świeżo po studiach na Uniwersytecie w Manchester. Druga wersja stylów CSS uzyskała status Rekomendacji w maju 1998 r., a wersja trzecia otrzyma go najprawdopodobniej pod koniec 1999 roku. W międzyczasie na stylach CSS bazuje nie tylko język HTML ale i wiele formatów opartych na języku XML. Przeglądarki, które wejdą na rynek pod koniec 1998 roku wykazują też chęci, chociaż wciąż ograniczone, do obsługi danych w formacie XML.
Grupa robocza W3C (której pełna nazwa to "Grupa Robocza ds. Kaskadowych Arkuszy Stylów i Formatowania Właściwości", ponieważ nie zajmuje się ona wyłącznie stylami CSS) liczy około 15 członków wydelegowanych przez firmy i organizacje zrzeszone w W3C. Pochodzą z całego świata, więc cotygodniowe godzinne "spotkania" są najczęściej telefoniczne. Około czterech razy do roku odbywają się spotkania w różnych miejscach świata. Ostatnio były to Provo, Redmond, San Francisco oraz Paryż. W Paryżu spotkanie odbyło się w biurach EDF-GDF, francuskiego dostawcy gazu i prądu. Uraczono nas wtedy wyśmienitą kolacją, na którą składały się francuskie dania oraz panorama Paryża i rzeki Seine. Był to jeden z tych wspaniałych momentów w historii ciężkiej pracy grupy. Francuzi, którzy normalnie od dostawcy prądu i gazu nie dostają nic za darmo, musieli nam strasznie zazdrościć.
Saga o CSS nie byłaby kompletna bez sekcji poświęconej przeglądarkom. Gdyby nie one, style CSS pozostałyby tylko wydumanym i czysto akademickim problemem. Pierwszą komercyjną przeglądarką obsługującą style CSS był wprowadzony w sierpniu 1996 r. Microsoft Internet Explorer 3. W tamtym czasie specyfikacja CSS1 nie uzyskała jeszcze statusu Rekomendacji W3C, a dyskusje w ramach HTML ERB miały przynieść zmiany, których programiści Microsoftu, z Chrisem Wilsonem na czele, nie byli w stanie przewidzieć. IE3 stabilnie obsługuje większość właściwości koloru, tła, czcionki i tekstu, ale nie zaimplementowano w nim pełnej obsługi pól tekstowych.
Następną przeglądarką obsługującą style CSS był Netscape Navigator w wersji 4.0. Netscape od początku był nastawiony sceptycznie do arkuszy stylów, a ich pierwsza implementacja okazała się być niechętną próbą powstrzymania Microsoftu przed osiągnięciem większej zgodności ze standardami. Implementacja firmy Netscape oferuje szeroki zakres opcji takich jak elementy float, jednak programiści z Netscape nie mieli czasu na pełne przetestowanie wszystkich opcji, które są rzekomo obsługiwane. W rezultacie w przeglądarce Navigator 4 nie można korzystać z wielu właściwości stylów CSS.
Netscape zaimplementował style CSS wewnętrznie, poprzez translację reguł CSS na fragmenty kodu Javascript, które następnie wykonywano razem z innymi skryptami. Firma zdecydowała się też pozwolić programistom pisać w języku JSSS, w rezultacie całkowicie obchodząc style CSS. Gdyby język JSSS odniósł sukces, Internet miałby o jeden arkusz stylów za dużo. Na szczęście, tak się nie stało.
W tym samym czasie Microsoft kontynuował wysiłki mające na celu pozbawienie Netscape'a władzy na rynku przeglądarek internetowych. W przeglądarce Internet Explorer 4 silnik graficzny, odpowiedzialny między innymi za wyświetlanie stylów CSS, został zastąpiony modułem o nazwie "Trident". Trident pozwalał pozbyć się ograniczeń obecnych w IE3, ale wniósł ze sobą własne błędy i ograniczenia. IE4 nie obsługuje w pełni stylów CSS1, co zostało podkreślone przez organizację Web Standards Project (WaSP) w listopadzie 1998 w publikacji "10 Najważniejszych problemów IE ze stylami CSS" (Obraz 20.1).
Obraz 20.1 Projekt WaSP śledzi zgodność przeglądarek z Rekomendacjami W3C. Jeden z pierwszych artykułów omawiał obsługę stylów CSS w przeglądarce Internet Explorer.
Poza wyświetlaniem statycznych dokumentów Trident umożliwia również dynamiczne zmiany właściwości stylów. Przykładowo, możliwa jest animacja elementów na ekranie poprzez ciągłe zmiany ich właściwości top oraz left. Tak powstał "Dynamic HTML" (DHTML). Generalnie DHTML jest bardzo podobny do języka JSSS (obydwa języki korzystają z języków skryptowych do ustawienia właściwości stylów), ale DHTML nigdy nie był reklamowany jako alternatywny język arkuszy stylów. W istocie style CSS są integralną częścią języka DHTML.
Trzecią przeglądarką, która zajęła się stylami CSS była Opera. Przeglądarka małej norweskiej firmy trafiła na pierwsze strony gazet w 1998 roku dzięki niewielkim rozmiarom (mieściła się na dyskietce) oraz swojej modyfikowalności. Równocześnie obsługiwała też większość opcji oferowanych przez produkty Microsoftu i Netscape'a. Opera 3.5 weszła na rynek w listopadzie 1998 roku i obsługuje większość stylów CSS1. Programiści Opery (głownie Geir Ivarsøy) znaleźli też czas na przetestowanie własnej implementacji przed wprowadzeniem jej na rynek. Opracowana przez Erica Meyera (z pomocą niezliczonych ochotników) wersja testowa CSS1 znacznie ułatwiła programistom testowanie i doskonalenie swoich produktów.
Kiedy piszemy te słowa zarówno Netscape jak i Microsoft ciężko pracują nad wypuszczeniem na rynek kolejnych przeglądarek. Netscape zdecydował się na zastąpienie silnika graficznego przeglądarki Navigator modułem "nglayout," który został napisany od zera bazując między innymi na stylach CSS. Nowa przeglądarka nazywa się "Gecko" a wersję beta można ściągnąć ze strony http://www.mozilla.org. Microsoft udostępnił już wersje testowe przeglądarki Internet Explorer 5. Niektóre poprawki w obsłudze stylów CSS już wprowadzono. Można też oczekiwać, że inicjatywa WaSP przypomni firmie o rzeczach, które należy zrobić, żeby przeglądarka w pełni obsługiwała style CSS1.
Na witrynie internetowej tej książki będzie można znaleźć odnośniki do najnowszych przeglądarek obsługujących style CSS.
CSS Tutorials and resources
CSS Properties | CSS Tutorial | CSS syntax | CSS Backgrounds | How the CSS works? | External files | CSS Fonts