3 Zgodność: wymagania i zalecenia
Spis treści
3.1 Definicje
Słowa kluczowe "MUSI" (MUST), "NIE MOŻE" (MUST NOT), "WYMAGANY" (REQUIRED), "BĘDZIE" (SHALL), "NIE BĘDZIE" (SHALL NOT), "POWINIEN" (SHOULD), "NIE POWINIEN" (SHOULD NOT), "ZALECANE" (RECOMMENDED), "MOŻE" (MAY) oraz "OPCJONALNY" (OPTIONAL) użyte w tym dokumencie należy interpretować zgodnie z opisem w dokumencie RFC 2119 (zobacz [RFC2119]). Aby nie utrudniać czytania tekstu, słowa te w dalszej części specyfikacji są pisane małymi literami.
Od czasu do czasu w specyfikacji tej można znaleźć zalecenia dotyczÄ…ce dobrych zwyczajów dla autorów i aplikacji klienckich. Zalecenia te nie sÄ… normatywne i zgodność z tÄ… specyfikacjÄ… nie zależy od ich realizacji. Zalecenia te zawierajÄ… wyrażenia typu "Zaleca siÄ™…", "Specyfikacja zaleca…" lub podobne.
Fakt, że jakaś funkcja jest oznaczona jako wycofywana (słowo kluczowe ‚aural’) lub ma zostać wycofana w CSS 3 (kolory systemowe) również nie wpływa na zgodność. (Na przykład słowo kluczowe ‚aural’ jest oznaczone jako nienormatywne, przez co aplikacje klienckie nie muszą go obsługiwać. Kolory systemowe są normatywne, a więc aplikacje muszą je obsługiwać.)
Wszystkie części tej specyfikacji włącznie z dodatkami są normatywne, oprócz fragmentów oznaczonych inaczej.
Przykłady i uwagi są nienormatywne.
W pobliżu poczÄ…tku przykÅ‚adu zwykle znajduje siÄ™ sÅ‚owo "przykÅ‚ad" ("PrzykÅ‚ad:", "W poniższym przykÅ‚adzie…", "Na przykÅ‚ad" itp.). Tekst przykÅ‚adów ma kolor rdzawoczerwony, jak ten akapit.
Uwagi zaczynają się słowem "Uwaga", są wcięte i mają kolor jasnozielony, jak ten akapit.
Rysunki służą tylko jako ilustracje. Nie stanowią one punktów odniesienia dla prezentacji, chyba że tak właśnie napisano.
- Arkusz stylów
- Zbiór instrukcji określających sposób prezentacji dokumentu.
Arkusze stylów mogą pochodzić z trzech różnych źródeł: autor, użytkownik oraz aplikacja kliencka. Zależności między tymi źródłami zostały opisane w podrozdziale o kaskadzie i dziedziczeniu.
- Poprawny arkusz stylów
- Poprawność arkusza stylów zależy od poziomu CSS użytego do jego budowy. Wszystkie poprawne arkusze stylów CSS 1 są poprawnymi arkuszami CSS 2.1, ale pewne zmiany w stosunku do CSS 1 oznaczają, że niektóre arkusze stylów CSS 1 będą miały inną semantykę w CSS 2.1. Niektóre funkcje CSS 2 nie należą do CSS 2.1, przez co nie wszystkie poprawne arkusze CSS 2 są poprawnymi arkuszami CSS 2.1.
Poprawny arkusz CSS 2.1 musi zostać napisany zgodnie z wymogami gramatyki CSS 2.1. Ponadto musi zawierać wyłącznie reguły ‚@’, nazwy własności oraz wartości własności zdefiniowane w tej specyfikacji. Niedozwolona (niepoprawna) reguła ‚@’, nazwa własności lub wartość własności to taka, która nie jest poprawna.
- Dokument źródłowy
- Dokument, na rzecz którego został zastosowany przynajmniej jeden arkusz stylów. Dokument taki jest napisany w jakimś języku reprezentującym go w postaci drzewa elementów. Każdy element ma nazwę pozwalającą zidentyfikować jego typ, opcjonalne atrybuty oraz treść (istnieją też elementy puste). Na przykład dokument źródłowy może być egzemplarzem w języku XML lub SGML.
- Język dokumentu
- Język kodowania dokumentu źródłowego (np. HTML, XHTML lub SVG). CSS służą do opisywania prezentacji języków dokumentu, ale nie zmieniają semantyki tych języków.
- Element
- (Termin z języka SGML, zobacz [ISO8879].) Pierwotne konstrukcje syntaktyczne języka dokumentu. Większość reguł stylistycznych CSS wykorzystuje nazwy tych elementów (np. P, TABLE czy OL w języku HTML) do określenia sposobu ich formatowania.
- Element zastępowany
Element, którego treść wykracza poza zakres modelu formatowania CSS, np. obraz, dokument osadzony czy aplet. Na przykład treść elementu HTML o nazwie IMG jest zwykle zastępowana obrazem wskazywanym przez atrybut "src" tego elementu. Elementy zastępowane często mają wewnętrzne wymiary: wewnętrzną szerokość, wewnętrzną wysokość oraz wewnętrzny współczynnik. Na przykład mapa bitowa ma szerokość i wysokość wewnętrzną zdefiniowane w jednostkach bezwzględnych (na podstawie których można oczywiście określić wewnętrzny współczynnik). Natomiast inne dokumenty mogą nie mieć wewnętrznych wymiarów (np. pusty dokument HTML).
Aplikacja kliencka może uznać, że element zastępowany nie ma wewnętrznych wymiarów, jeśli istnieje ryzyko, że wymiary te mogłyby spowodować ujawnienie poufnych informacji niepowołanym osobom. Jeśli na przykład rozmiar wewnętrzny dokumentu HTML zmienia się w zależności od salda na koncie użytkownika, aplikacja kliencka może działać tak, jakby to źródło nie miało wewnętrznych wymiarów.
- Wymiary wewnętrzne
- Szerokość i wysokość samego elementu, nie narzucone przez otoczenie. Specyfikacja CSS nie podaje sposobu sprawdzania wymiarów wewnętrznych. W CSS 2.1 tylko elementy zastępowane mogą mieć wymiary wewnętrzne. W przypadku obrazów rastrowych nie mających godnych zaufania informacji przyjmuje się z konieczności, że jednemu pikselowi źródłowemu obrazu odpowiada jeden piksel jednostkowy.
- Atrybut
- Wartość związana z elementem. Ma nazwę i wartość (tekstową).
- Treść
- Treść związana z elementem w dokumencie źródłowym. Niektóre elementy nie mają treści i są nazywane elementami pustymi. W treści elementu może znajdować się tekst oraz pewna liczba pod-elementów. Taki element nazywa się rodzicem tych pod-elementów.
- Ignorowanie
- Ten termin ma w specyfikacji dwa nieco odmienne znaczenia. Po pierwsze analizator składni CSS musi przestrzegać pewnych zasad, gdy napotka nieznaną lub niepoprawną składnię w arkuszu stylów. Wówczas musi on zignorować określone części arkuszy stylów. Zasady dotyczące ignorowania niektórych części arkuszy zostały szczegółowo opisane w podrozdziałach: Deklaracje i własności, Zasady postępowania z błędami analizy składniowej, oraz Nieobsługiwane wartości lub mogą być zdefiniowane w miejscach, w których został użyty termin "ignorowanie". Po drugie aplikacja kliencka może (a w niektórych przypadkach musi) odrzucać pewne własności lub wartości w arkuszu stylów, nawet jeśli ich składnia jest poprawna. Na przykład elementy będące kolumnami tabeli nie mogą wpływać na krój pisma kolumny, a więc własności pisma muszą zostać zignorowane.
- Treść prezentowana
- Treść elementu po zaprezentowaniu z zastosowaniem odpowiednich arkuszy stylów. Specyfikacja ta nie definiuje sposobu prezentowania treści elementów zastępowanych. Treścią prezentowaną może być również tekst alternatywny elementu (np. wartość atrybutu "alt" w języku XHTML). Treść ta może również zawierać elementy wstawione bezpośrednio lub pośrednio przez arkusz stylów, jak np. punktory, numeracja itp.
- Drzewo dokumentu
- Drzewo elementów znajdujących się w dokumencie źródłowym. Każdy element tego drzewa ma dokładnie jednego rodzica, oprócz elementu głównego, który nie ma rodzica.
- Element dziecko
- Element A nazywa siÄ™ dzieckiem elementu B, wtedy i tylko wtedy, gdy element B jest rodzicem elementu A.
- Element potomek
- Element A nazywa się potomkiem elementu B, jeśli (1) element A jest dzieckiem elementu B lub (2) element A jest dzieckiem jakiegoś elementu C będącego potomkiem elementu B.
- Element przodek
- Element A nazywa siÄ™ przodkiem elementu B, wtedy i tylko wtedy, gdy element B jest potomkiem elementu A.
- Element brat
- Element A nazywa się bratem elementu B, wtedy i tylko wtedy, gdy elementy B i A mają tego samego rodzica. Element A jest bratem poprzedzającym, jeśli występuje przed elementem B w drzewie dokumentu. Element B jest bratem następującym, jeśli występuje za elementem A w drzewie dokumentu.
- Element poprzedzajÄ…cy
- Element A nazywa siÄ™ elementem poprzedzajÄ…cym elementu B,wtedy i tylko wtedy, gdy (1) A jest przodkiem B lub (2) A jest poprzedzajÄ…cym bratem B.
- Element następujący
- Element A nazywa się elementem następującym po elemencie B, wtedy i tylko wtedy, gdy element B jest elementem poprzedzającym A.
- Autor
- Autorem jest osoba pisząca dokumenty i związane z nimi arkusze stylów. Narzędzie autorskie to aplikacja kliencka, która generuje arkusze stylów.
- Użytkownik
- Użytkownik to osoba używająca aplikacji klienckiej w celu przeglądania, odsłuchiwania lub korzystania w inny sposób z dokumentu i związanego z nim arkusza stylów. Użytkownik może dostarczyć własny arkusz stylów ze zdefiniowanymi jego osobistymi preferencjami.
- Aplikacja kliencka
- Aplikacja kliencka to każdy program interpretujący dokument napisany w jakimś języku do tworzenia dokumentów i stosująca związane z nim arkusze stylów zgodnie z zasadami opisanymi w tej specyfikacji. Aplikacja kliencka może wyświetlić dokument, przeczytać go na głos, skierować do wydruku, przekształcić na inny format itd.
- Aplikacja kliencka HTML to program obsługujący specyfikacje HTML 2.x, HTML 3.x lub HTML 4.x. Aplikacja kliencka obsługująca XHTML [XHTML], ale nie HTML (zgodnie z listą zamieszczoną w poprzednim zdaniu) nie jest uważana za aplikację kliencką HTML na potrzeby zgodności z tą specyfikacją.
- Własność
- Specyfikacja CSS definiuje skończoną liczbę parametrów zwanych własnościami, które sterują prezentacją dokumentu. Każda własność ma nazwę (np. ‚color’, ‚font’ lub border’) i wartość (np. ‚red’, ’12pt Times’ lub ‚dotted’). Własności są wiązane z różnymi częściami dokumentu i strony, na której dokument jest wyświetlany poprzez mechanizmy precyzyjności, kaskadowości oraz dziedziczenia (zobacz podrozdział Przypisywanie własnościom wartości, kaskadowość i dziedziczenie).
Poniżej znajduje się przykładowy dokument źródłowy w języku HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<TITLE>Moja strona osobista</TITLE>
<BODY>
<H1>Moja strona osobista</H1>
<P>Witaj na mojej stronie! Oto lista moich ulubionych
kompozytorów:
<UL>
<LI> Elvis Costello
<LI> Johannes Brahms
<LI> Georges Brassens
</UL>
</BODY>
</HTML>
Drzewo tego dokumentu wyglÄ…da tak:
Zgodnie z definicją języka HTML 4 elementy HEAD zostaną dodane w czasie analizy składniowej i wejdą w skład drzewa dokumentu, nawet jeśli odpowiednich znaczników nie ma w źródle. Analogicznie analizator składni zna miejsca zakończenia elementów P i LI, mimo braku w źródle znaczników </p> i </li>.
Dokumenty napisane w języku XHTML (i innych językach bazujących na języku XML) zachowują się inaczej: nie ma elementów dodawanych przez analizator i wszystkie elementy muszą zostać zamknięte.
3.2 Zgodność aplikacji klienckich (UA — User Agent)
W tym podrozdziale zostały opisane zasady zgodności tylko ze specyfikacją CSS 2.1. W przyszłości mogą powstać inne poziomy CSS, które będą wymagały zaimplementowania przez zgodne aplikacje klienckie innego zestawu funkcji.
Ogólnie rzecz biorąc, aplikacja kliencka zgodna z niniejszą specyfikacją musi spełniać następujące warunki:
- Rozpoznaje przynajmniej jeden typ mediów CSS 2.1.
- Próbuje odszukać wszystkie arkusze stylów związane z dokumentem, które są przeznaczone dla określonego typu mediów. Jeśli nie uda się odszukać wszystkich arkuszy stylów (np. z powodu błędów sieciowych), dokument musi zostać zaprezentowany przy użyciu dostępnych arkuszy.
- Przetwarza arkusze stylów zgodnie z niniejszą specyfikacją. W szczególności musi rozpoznawać wszystkie reguły ‚@’, bloki, deklaracje i selektory (zobacz dodatek gramatyka CSS 2.1). Jeśli aplikacja kliencka napotka własność przeznaczoną dla obsługiwanego typu mediów, musi tę własność przetworzyć zgodnie z jej definicją. Oznacza to, że aplikacja kliencka musi przyjmować wszystkie poprawne wartości oraz ignorować deklaracje zawierające niepoprawne wartości. Aplikacje klienckie muszą ignorować reguły odnoszące się do nieobsługiwanych typów mediów.
- Dla każdego elementu w drzewie dokumentu musi przypisać wartość każdej własności zgodnie z definicją tej własności oraz zasadami kaskadowości i dziedziczenia.
- Jeśli dokument źródłowy ma alternatywne zestawy arkuszy stylów (np. dodane za pomocą słowa kluczowego "alternate" języka HTML 4 [HTML4]), aplikacja kliencka musi pozwolić użytkownikowi wybrać dowolny z tych arkuszy.
- Aplikacja kliencka musi umożliwiać wyłączenie autorskich arkuszy stylów.
Jednak nie każda aplikacja kliencka musi przestrzegać wszystkich powyższych zasad:
- Aplikacja wczytująca arkusze stylów nie prezentując żadnej treści (np. walidator CSS 2.1) musi przestrzegać warunków 1-3.
- Od narzędzia autorskiego wymaga się tylko, aby wytwarzało poprawne arkusze stylów
- Aplikacja kliencka prezentująca dokument z dołączonymi arkuszami stylów musi spełniać wymagania postawione w punktach 1-6 oraz prezentować dokumenty zgodnie z wymaganiami właściwymi dla określonych mediów zdefiniowanymi w tej specyfikacji. W uzasadnionych przypadkach aplikacja może stosować wartości przybliżone.
Brak obsługi części tej specyfikacji z powodu ograniczeń urządzeń (np. aplikacja kliencka nie może zaprezentować kolorów na monitorze monochromatycznym) nie powoduje jej niezgodności ze specyfikacją.
Aplikacje klienckie muszą umożliwiać użytkownikom określenie plików zawierających ich własne arkusze stylów. Z wymogu tego zwolnione są aplikacje działające na urządzeniach bez możliwości pisania lub określania plików. Dodatkowo aplikacje klienckie mogą umożliwiać definiowanie preferencji użytkownikom na inne sposoby, np. poprzez GUI.
Specyfikacja CSS 2.1 nie podaje które własności służą do formatowania kontrolek formularzy i ramek ani nie określa sposobu ich formatowania za pomocą CSS. Aplikacje klienckie mogą stosować własności do tych elementów. Zaleca się, aby autorzy traktowali taką obsługę jako eksperymentalną. W kolejnej wersji CSS może to zostać uściślone.
3.3 Obsługa błędów
Ogólnie rzecz biorąc, dokument ten określa sposób obsługi błędów poprzez specyfikację. Zobacz np. Zasady postępowania z błędami analizy składniowej.
3.4 Typ treści text/css
Arkusze stylów CSS znajdujące się w osobnych plikach są wysyłane przez Internet jako szereg bajtów z dołączoną informacją o kodowaniu. Struktura transmisji, zwanej encją wiadomości została zdefiniowana w dokumentach RFC 2045 i RFC 2616 (zobacz [RFC2045] i [RFC2616]). Encja wiadomości o typie treści "text/css" reprezentuje niezależny dokument CSS. Typ treści "text/css" został zarejestrowany przez dokument RFC 2318 ([RFC2318]).

Dodaj komentarz