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:
nepoporuje IE6-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:
nepoporuje IE6-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:
nepoporuje IE6-Vybere element, obsahující definovaný atribut, hodnotu atributu, nebo jeho část.
Příklad použití CSS pouze na elementy aobsahující atribut titles hodnotou odkaz:
a[title="odkaz"] {
color: blue;
}
Příklad použití CSS pouze na elementy spanobsahují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 pobsahují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 pobsahují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 pobsahující atribut class, jehož hodnota končí řetězcem pis(nadpis, podnadpis):
p[class$="pis"] {
color: blue;
}
Poznámky:
IE7 vyžaduje striktní režim
nepoporuje IE6-
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 :)