logo-w3c
1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek (nikt jeszcze nie ocenił tego wpisu)
Loading ... Loading ...

Dodatek E. Szczegółowy opis kontekstów stosowych

Dodatek E. Szczegółowy opis kontekstów stosowych

Ten rozdział definiuje kolejność rysowania elementów CSS 2.1 bardziej szczegółowo, niż reszta specyfikacji.

E.1 Definicje

Kolejność drzewa
Przeglądanie wzdłużne w głąb drzewa renderowania w logicznej (nie wizualnej) kolejności dla treści dwukierunkowej po uwzględnieniu własności, które przesuwają pola, takich jak np. wartość ‚run-in’ własności ‚display’.
Element
W tym opisie "elementami" są rzeczywiste elementy, pseudoelementy oraz pola anonimowe. Pseudoelementy i pola anonimowe są traktowane jako potomkowie w odpowiednich miejscach. Na przykład zewnętrzny punktor listy występuje przed sąsiadującym polem ‚:before’ w polu linowym, które to pole ‚:before’ występuje przed treścią pola liniowego itd.

E.2 Kolejność rysowania

Spód stosu jest najbardziej oddalony od użytkownika. Wierzch znajduje się najbliżej:

	     |	   |	     |	  |
	     |		|    |	  |	? ?
	     |		|	  |	użytkownik
z-index:  kanwa   -1	0    1	  2

Tło kontekstu stosowego i konteksty stosowe o najniższych numerach ujemnych znajdują się na spodzie stosu. Natomiast konteksty stosowe o najwyższych numerach dodatnich znajdują się na wierzchu stosu.

Kanwa jest przezroczysta, jeśli znajduje się w innej oraz ma kolor zdefiniowany przez aplikację kliencką w przeciwnym przypadku. Kanwa jest nieskończona i zawiera element główny. Początkowo lewy górny róg obszaru widoku jest zaczepiony na początku kanwy.

Kolejność stosowa elementu generującego kontekst stosowy (zobacz własność ‚z-index’) jest następująca:

  1. Jeśli element jest elementem głównym:

    1. kolor tła elementu pokrywa całą kanwę.
    2. obraz tła elementu, pokrywa całą kanwę, zaczepiony jest na początku, który zostałby użyty gdyby narysowano go dla elementu głównego.
  2. Jeśli element jest blokiem, elementem listy lub innym odpowiednikiem bloku:

    1. kolor tła elementu, jeśli nie jest to element główny.
    2. obraz tła elementu, jeśli nie jest to element główny.
    3. obramowanie elementu.

    Jeśli element jest elementem tabelowym:

    1. tła tabeli (najpierw kolor, potem obraz), jeśli element nie jest elementem głównym.
    2. tła grup kolumn (najpierw kolor, potem obraz).
    3. tła kolumn (najpierw kolor, potem obraz).
    4. tła grup wierszy (najpierw kolor, potem obraz).
    5. tła wierszy (najpierw kolor, potem obraz).
    6. tła komórek (najpierw kolor, potem obraz).
    7. wszystkie krawędzie obramowania tabeli (w kolejności drzewa w przypadku obramowań oddzielonych).
  3. Konteksty stosowe utworzone przez potomków pozycjonowanych z ujemnymi indeksami (nie wliczając 0) w kolejności na osi z (najpierw największe liczby ujemne), a następnie w kolejności drzewa.

  4. Dla wszystkich należących do układu, niepozycjonowanych potomków blokowych w kolejności drzewa: Jeśli element jest blokiem, elementem listy lub innym odpowiednikiem bloku:

    1. kolor tła elementu.
    2. obraz tła elementu.
    3. obramowanie elementu.

    W przeciwnym przypadku element jest tabelą:

    1. tła tabeli (najpierw kolor, potem obraz).
    2. tła grup kolumn (najpierw kolor, potem obraz).
    3. tła kolumn (najpierw kolor, potem obraz).
    4. tła grup wierszy (najpierw kolor, potem obraz).
    5. tła wierszy (najpierw kolor, potem obraz).
    6. tła komórek (najpierw kolor, potem obraz).
    7. wszystkie krawędzie obramowania tabeli (w kolejności drzewa w przypadku obramowań oddzielonych).
  5. Wszystkie niepozycjonowane pływające elementy potomne w kolejności drzewa. Dla każdego z tych element jest traktowany tak, jakby tworzył nowy kontekst stosowy, ale wszyscy pozycjonowani potomkowie i potomkowie, którzy rzeczywiście tworzą nowy kontekst stosowy powinni być uważani za część nadrzędnego kontekstu stosowego, nie tego nowego.

  6. Jeśli element jest śródliniowym elementem generującym kontekst stosowy:

    1. dla każdego pola liniowego, w którym element ten się znajduje:

      1. Przejdź do 7.2.1 dla pól tego elementu w tym polu liniowym (w kolejności drzewa).
  7. W innym przypadku: najpierw dla elementu, następnie dla wszystkich jego należących do układu, niepozycjonowanych potomków blokowych w kolejności drzewa:

    1. Jeśli element jest zastępowanym elementem blokowym: treść zastępowana, niepodzielnie.

    2. Dla każdego pola liniowego tego elementu:

      1. Dla każdego pola będącego dzieckiem tego elementu, w tym polu liniowym, w kolejności drzewa:

        1. kolor tła elementu.

        2. obraz tła elementu.

        3. obramowanie elementu.

        4. Dla elementów śródliniowych:

          1. Dla wszystkich należących do układu, niepozycjonowanych śródliniowych dzieci elementu, które znajdują się w tym polu liniowym i wszystkich linii tekstu znajdujących się w elemencie, który znajduje się w tym polu liniowym w kolejności drzewa:

            1. Jeśli jest to fragment tekstu:

              1. wszelkie podkreślenia dotyczące tego tekstu w kolejności drzewa elementów stosujących to podkreślenie (tak, że podkreślenie najgłębiej położonego elementu jest rysowane najwyżej, a elementu głównego — najniżej).
              2. wszelkie nadkreślenia dotyczące tego tekstu w kolejności drzewa elementów stosujących to nadkreślenie (tak, że nadkreślenie najgłębiej położonego elementu jest rysowane najwyżej, a elementu głównego — najniżej).
              3. Tekst.
              4. wszelkie przekreślenia dotyczące tego tekstu w kolejności drzewa elementów stosujących to przekreślenie (tak, że przekreślenie najgłębiej położonego elementu jest rysowane najwyżej, a elementu głównego — najniżej).
            2. W przeciwnym przypadku przejdź do 7.2.1 dla tego elementu.

          Dla bloków śródliniowych i tabel śródliniowych:

          1. Dla każdego z tych element jest traktowany tak, jakby tworzył nowy kontekst stosowy, ale wszyscy pozycjonowani potomkowie i potomkowie, którzy rzeczywiście tworzą nowy kontekst stosowy powinni być uważani za część nadrzędnego kontekstu stosowego, nie tego nowego.

          Dla śródliniowych elementów zastępowanych:

          1. treść zastępowana, niepodzielnie.

        Niektóre pola mogą zostać wygenerowane poprzez podzielenie linii lub przez algorytm dwukierunkowości Unicode.

      2. Opcjonalnie, obrys elementu (zobacz 10 poniżej).

    3. Opcjonalnie, jeśli element jest blokowy, obrys elementu (zobacz 10 poniżej).

  8. Wszystkie pozycjonowane elementy potomne z własnością ‚z-index: auto’ lub ‚z-index: 0′, w kolejności drzewa. Dla elementów z własnością ‚z-index: auto’ element jest traktowany tak, jakby tworzył nowy kontekst stosowy, ale wszyscy pozycjonowani potomkowie i potomkowie, którzy rzeczywiście tworzą nowy kontekst stosowy powinni być uważani za część nadrzędnego kontekstu stosowego, nie tego nowego. Dla elementów z własnością ‚z-index: 0′, wygenerowany kontekst stosowany należy traktować jako niepodzielny.

  9. Konteksty stosowe utworzone przez potomków pozycjonowanych o indeksach większych niż lub równych 1 (najmniejszy najpierw), następnie kolejność drzewa.

  10. W końcu implementacje nie rysujące obrysów w powyższych punktach, muszą rysować obrysy z tego kontekstu stosowego na tym etapie. (Zaleca się rysowanie obrysów na tym etapie, a nie wcześniej.)

E.3 Uwagi

Tło elementu głównego jest rysowane tylko raz, nad całą kanwą.

Mimo że tła dwukierunkowych elementów śródliniowych są rysowane w kolejności drzewa, są pozycjonowane w kolejności wizualnej. Ponieważ pozycjonowanie teł elementów śródliniowych w CSS 2.1 jest nieokreślone, wynik tych dwóch wymogów zależy od aplikacji klienckiej. W CSS 3 może to zostać zdefiniowane bardziej szczegółowo.

Dodaj komentarz









Newsletter

Subskrybując nasz newsletter masz pewność, że nie ominie Cię żadna nowość w serwisie!