Dědičnost
- klíčový pojem
- pokud nastavíme elementu vlastnost na konkrétní hodnotu, přejímají to i potomci tohoto elementu
- např. nastavíme-li barvu textu v nadřazeném elementem na zelenou, tak i jeho potomci budou mít barvu zelenou, pokud neřeknou jinak
- ne všechny vlastnosti se dědí
- pokud vlastnosti dáme hodnotu
inherit
bude děděna z rodiče - pokud vlastnosti dáme hodnotu
initial
defaultní hodnota prohlížeče - vlastnost
all
řídí dědičnost všech vlastností a to i v potomku
Vlastnost
all
- analogicky je možné použít klíčové slovo
initial
místoinherit
Kaskáda
- jednotlivé elementy mohou být vybrány různými selektory
HTML:
CSS:
- pokud v deklaracích budou vlastnosti stejné bude docházet ke kolizím CSS pravidel
- řeší pravidlo(princip) kaskády
Pravidlo kaskády má 2 části:
- při kolizi rozhoduje specifičnost, přesně řečeno hodnota uvedena v pravidle s více specifickým selektorem má přednost před méně specifickým
- při kolizi se shodnou specifičností rozhoduje pořadí (hodnota uvedená později)
Pravidlo kaskády je nejdůležitější koncept CSS
Specifičnost
- specifičnost CSS selektoru vypovídá o jeho konkrétnosti
- málo specifický vybírá více elementů než více specifický
- specifičnost reprezentovaná ve tvaru:
a b c
a
- počet id selektorůb
- počet class selektorů a pseudo-tříd v selektoruc
- počet elementů a pseudo-elementů
a
největšíc
nejmenší specifičnost- inline CSS má specifickou specifičnost
1 0 0 0
- komplikace dědičnosti - vždy nastavená hodnota má přednost před hodnotou získanou dědičností (bez ohledu na specifičnost)
Nastaví se vlastnost
color
na blue
- 0 1 0 < 1 0 1
Note
Kombinační operátory +, > a ~ nemají na výpočet specifičnosti vliv
Pořadí
- pokud CSS pravidla mají stejnou specifičnost, rozhoduje o nastavení vlastnosti pořadí pravidel ve kterém je tato vlastnost uvedena aplikují se později uvedené
Nastaví se vlastnost
color
na red
- rozhoduje i na úrovni deklaračního bloku
- tento kód nastaví modrou barvu html elementu pojmenovaný class second
Důležitost
- pravidla kaskády jdou obejít pomocí důležitosti
- důležitá hodnota má přednost především
- uvádíme
!important
- jakoby specifičnost byla
1 0 a b c
- pokud více hodnot používá
!important
pravidlo kaskády
- nepoužívat! (výjimka: lze použít pouze při práci s externími knihovnami)
Celý proces
- Pokud není hodnota nastavena, je použita výchozí hodnota definovaná webovým prohlížečem.
- Pokud je hodnota zděděna, přepisuje hodnotu nastavenou v bodu 1.
- Pokud je hodnota explicitně nastavena, přepisuje hodnotu nastavenou v bodech 1 a 2.
- Pokud dochází ke kolizi, rozhoduje kaskáda.
- Pokud je hodnota nastavena v inline CSS, přepisuje hodnotu nastavenou v bodech 1–4.
- Pokud je hodnotě nastavena důležitost, přepisuje hodnotu nastavenou v bodech 1–5.
- Pokud uživatel použije vlastní hodnotu (vlastní sadu stylů), přepisuje tato hodnota hodnotu nastavenou v bodech 1–6.
Navigace
Předchozí: Box model Následující: Základy správného psaní CSS kódu - typické chyby a metodiky Celý okruh: 2. Informační technologie