Vzhled
Pseudoelementy
Ozdoby, které v HTML vůbec nejsou. CSS je vloží před obsah prvku nebo za něj.
Vyzdobíme krátký článek: linka nad nadpisem, hvězdička u povinného pole, velká uvozovka a šipka u odkazu ven. V náhledu vidíte, kam se dostaneme.
Začátek
Článek bez ozdob
Nadpis, seznam, citace, odstavec s odkazem a formulářové pole. Všechno funkční, ale strohé.
Pseudoelement se píše se dvěma dvojtečkami: ::before. Pseudotřída s jednou: :hover.
Pseudoelement · 1
Před obsahem ::before
Nad nadpis přidáme krátkou červenou linku. V HTML pro ni žádný element nemáme, vytvoří ji CSS.
Bez content se pseudoelement vůbec nezobrazí. Pro čistou ozdobu stačí prázdné uvozovky. Je inline, proto display: block, aby mohl mít šířku a výšku.
Pseudoelement · 2
Za obsahem ::after
Za popisek povinného pole přidáme červenou hvězdičku. Stačí jedno pravidlo a hvězdička bude u každého pole s třídou required.
Text v content screen readery často nepřečtou a nejde označit myší. Patří tam jen ozdoby, nikdy důležitý obsah.
Pseudoelement · 3
Odrážky ::marker
Odrážka seznamu je také pseudoelement. Obarvíme ji akcentovou barvou, text položek zůstane černý.
::marker umí jen pár vlastností: barvu, velikost a písmo. Úplně vlastní značku nastavíte přes list-style-type: "✓ " na seznamu.
Pseudoelement · 4
Velká uvozovka
Citaci ozdobíme velkou uvozovkou vlevo. Pseudoelement umístíme absolutně, citace mu bude kotvou a uděláme mu vlevo místo.
Spojení relative a absolute znáte z lekce Pozicování. S pseudoelementy se používá pořád.
Pseudoelement · 5
Šipka u odkazu ven
Odkazy na jiné weby označíme šipkou. Vybereme je selektorem atributu: každý odkaz, jehož href začíná na http.
Selektory atributů jsou v lekci Selektory. Pseudoelement se dá přidat za jakýkoli selektor.
Responzivita
Na telefonu menší uvozovka
Padding 56 px kvůli uvozovce bere na úzkém displeji citaci skoro pětinu šířky. Na mobilu uvozovku zmenšíme a padding zúžíme.
Pseudoelementy se do @media píšou úplně stejně jako ostatní selektory.
Shrnutí
Ozdoby bez dalšího HTML
Ano
::beforea::aftervždy scontent- ozdoby: linky, ikonky, uvozovky, hvězdičky
::markerpro barvu odrážekposition: absolutepro přesné umístění
Ne
- důležitý text v
content - prázdné
divv HTML jen kvůli ozdobě