Selektory určují prvky, pro které má definice platit.
Vybírá libovolný element (všechny elementy v dané hierarchii).
Příklad CSS:
* { color: blue; }
Vybírá element podle typu.
Část zdrojového kódu:
<p>text odstavece</p>
Příklad CSS:
p { color: blue; }
Vybere element označený definovanou třídou.
Část zdrojového kódu:
<p class="odstavec">text odstavece</p> <p class="poznamka">text poznámky</p> <div class="poznamka">text poznámky</div>
Příklad CSS:
.odstavec { color: blue; } .poznamka { color: red; } div.poznamka { border: 1px solid red; padding: 2px; }
Na stránce může být libovolné množství prvků se stejnou třídou.
Tip: An ultimate guide to CSS pseudo classes and pseudo elements
Příklad použití CSS na všechny nenavštívené odkazy:
a:link { color: #039; }
Příklad použití CSS na všechny navštívené odkazy:
a:visited { color: #930; }
Příklad použití dynamického CSS aktivované ve chvíli, kdy uživatel na odkaz najede kurzorem myši (:hover používejte až za :link a :visited):
a:hover { color: #f30; text-decoration: underline; }
Příklad použití dynamického CSS aktivované prvku, který je připraven pro příjem vstupu ze vstupního zařízeni např. na který je právě kliknuto myší, stisknuta klávesa Enter nebo mezerník (:active používejte až za :link, :visited a :hover):
a:active { color: #f30; text-decoration: underline; }
Příklad použití dynamického CSS při výběru odkazu, tlačítka, výběrovného seznamu a dalších formulářových prvnků uživatelem např. pomocí klávesnice:
a:focus {background: yellow;} a:focus:hover {background: white;}
První podřízený prvek jiného prvku:
p:first-child {text-indent: 2em;} p:first-child em {font-weight: bold;}
První, druhá, předposlední a poslední buňka tabulky:
td:first-child {width: 20%;} td:nth-child(2) {width: 60%;} td:nth-last-child(2) {width: 40%;} td:last-child {width: 20%;}
Každá třetí řádek "counter" (3n) – pozor počátek je nula, proto je posun "offset" nastaven na jedničku (+1):
tr:nth-child(3n+1) { background-color: #eee; }
Příklad různého nastavení dvojice uvozovek pro celý dokument a atribut prvku <cite> v jazyce čeština a angličtina:
:lang(cs) {quotes: '„' '“' "‚" "‘"} :lang(en) {quotes: '“' '”' "‘" "’"}
cite[lang="cs"] {quotes: '„' '“' "‚" "‘"} cite[lang="en"] {quotes: '“' '”' "‘" "’"}
CSS3 od sebe označením odlišuje pseudo-třídy, které používají jednu dvojtečku :
a pseudo-elementy u kterých se používá "dvojitá dvojtečka" ::
(v CSS2 se u všech pseudo prvků používá dvojtečka jednoduchá).
IE8 podporuje pouze CSS2, od IE9+ je již plná podpora CSS3 pseudo prvků.
Příklad prvního řádku odstavce:
p:first-line {text-transform: uppercase;}
Příklad použití CSS na první písmeno odstavce (vybere pouze část skutečného elementu):
p:first-letter { font-size: 300%; font-weight: bold; float: left; margin-right: .1em; }
Vlastnost content umožňuje vkládat textový obsah a je možné ji používat ve spojení s pseudo-elementy :before a :after. Vlastnost content není možné aplikovat na "neobsahové" elementy jako je např. <input>, <select>, <img> atd.
Příklad uvozovek definovaných na úrovni odstavce a zároveň kolem něj vložených „prázdných“ uvozovek:
p {quotes: '„' '“' "‚" "‘"} p:before {content: no-open-quote} p:after {content: no-close-quote} cite:before {content: open-quote} cite:after {content: close-quote}
Příklad přidání nového obsahu "mezery a šipky" za prvek třídy .slideshow-next:
.slideshow-next { position: reletive } .slideshow-next:after { content: ' >'; display: block; position: absolute; top: 0; right: 0; width: 40px; height: 40px; background: url('design.png') no-repeat -100px 6px; }
Vybere element označený definovaným identifikátorem.
Část zdrojového kódu:
<div id="zahlavi">Záhlaví</div>
Příklad CSS:
#zahlavi { color: green; }
V jednom dokumentu (stránce) je možné id přiřadit pouze jedinému prvku.
Vybere element následníka, jež je vnořen do elementu předka bez ohledu na hloubku vnoření.
Část zdrojového kódu:
<div> <img src="logo.gif" alt="Logo" /> <p> Podrobnosti viz <a href="#">statistika přístupnosti <img src="stat.gif" alt="Statistika" /></a>. </p> </div>
Příklad CSS:
div img { border: none; }
Vybere element potomka, jež je vnořen přímo do elementu rodiče.
Část zdrojového kódu:
<div> <img src="logo.gif" alt="Logo" /> <p> Podrobnosti viz <a href="#">statistika přístupnosti <img src="stat.gif" alt="Statistika" /></a>. </p> </div>
Příklad CSS:
div > img { border: none; }
Poznámky:
Vybere druhý definovaný element, který je sourozencem prvně definovaného elementu. Oba sourozenci musí mít stejného rodiče, musí ležet na stejné úrovni v hierarchii dokumentu, ale nemusí ležet bezprostředně za sebou.
Část zdrojového kódu:
<body> <h1>Nadpis</h1> <p>První odstavec</p> <p>Druhý odstavec</p> <h2>Nadpis 2. úrovně</h2> <p>Druhý odstavec</p> <p>Druhý odstavec</p> <h3>Nadpis 3. úrovně</h3> <p>Druhý odstavec</p> <p>Druhý odstavec</p> </body>
Příklad CSS:
h2 ~ p { color: blue; }
V tomto příkladě se deklarovaná vlastnost odstavce nepoužije dříve, než u nadpisu 2. úrovně.
Poznámky:
Vybere druhý definovaný element, který je sourozencem prvně definovaného elementu. Oba sourozenci musí mít stejného rodiče, musí ležet na stejné úrovni v hierarchii dokumentu a musí ležet bezprostředně za sebou.
Část zdrojového kódu:
<body> <h1>Nadpis</h1> <p>První odstavec</p> <p>Druhý odstavec</p> <h2>Nadpis 2. úrovně</h2> <p>Druhý odstavec</p> <p>Druhý odstavec</p> <h3>Nadpis 3. úrovně</h3> <p>Druhý odstavec</p> <p>Druhý odstavec</p> </body>
Příklad CSS:
h2 + p { color: blue; }
Poznámky:
Vybere element, obsahující definovaný atribut, hodnotu atributu, nebo jeho část.
Příklad použití CSS pouze na elementy a
obsahující atribut title
s hodnotou odkaz
:
a[title="odkaz"] { color: blue; }
Příklad použití CSS pouze na elementy span
obsahující atribut lang
, jehož hodnoty začínají řetězcem en
(en-us, en-uk):
span[lang|="en"] { color: blue; }
Příklad použití CSS pouze na elementy p
obsahující atribut class
, jehož hodnota obsahuje řetězec nadpis
(nadpis1, nadpis2, ale i podnadpis):
p[class*="nadpis"] { color: blue; }
Příklad použití CSS pouze na elementy p
obsahující atribut class
, jehož hodnota začíná řetězcem nadpis
(nadpis1, nadpis2):
p[class^="nadpis"] { color: blue; }
Příklad použití CSS pouze na elementy p
obsahující atribut class
, jehož hodnota končí řetězcem pis
(nadpis, podnadpis):
p[class$="pis"] { color: blue; }
Poznámky:
Komentáře
chyba?
Nejspíš máš chybu v popisu části Selektory atributů... Podle toho co píšeš, funguje p[class*="nadpis"] stejně jako p[class$="pis"]. Zkoušel jsem oba selektory a moc nechápu ten druhý, jak kdyby hodnota atributu nemohla začínat tím požadovaným řetězcem...
Tak už chápu jak funguje p[class$="pis"]. Příklad použití CSS pouze na elementy p obsahující atribut class, jehož hodnota končí řetězcem pis (nadpis, podnadpis).
Jinak rozhodně užitečný článek, díky za něj ;)
Opraveno
Díky, chybu v popisu selektorů jsem opravil :)