Dnes je Přidat k oblíbeným

Selektory v CSS

 nova online Z minulé kapitoly víme, že selektory jsou první položkou v každém CSS pravidle a že určují, na které prvky se má styl použít. Selektory mohou provádět selekci podle:
  1. Typu prvku
  2. Jednoznačného názvu prvku (identifikátoru)
  3. Třídy prvku
  4. Vícenásobných tříd
  5. Kombinace a sdružení selektorů
  6. Pseudotříd a pseudoprvků
 Vypadá to složitě, ale je to základ celého CSS a na pochopení je to velice jednoduché.

Typ prvku

Je to ten nejjednodušší selektor. Jeho názvem je název tagu v HTML a definice stylu potom platí pro všechny tyto tagy v HTML dokumentu.
p {color: red}
h1 {width: 100px}
Všechny odstavce (p) v HTML dokumentu budou mít červenou barvu. Všechny nadpisy h1 v HTML dokumentu budou 100px široké.
Kromě názvů tagů ještě můžeme použít znak *, který je univerzální. Znamená, že styl platí pro všechny tagy bez ohledu na jejich název.
* {color: blue}
Všechny prvky v dokumentu budou mít modré písmo (tabulky, odstavce, nadpisy, divy...)

Jednoznačný název prvku (identifikátor)

Slouží k tomu, abyste si nadefinovali vlastní seznamy pravidel a ty potom v HTML dokumentu přiřadíte k jednotlivým tagům, které chcete, aby byly zobrazeny podle těchto pravidel. Kterémukoliv tagu v HTML souboru můžete přiřadit atribut id="jméno_prvku". Žádné dva tagy v tomtéž HTML souboru však nesmějí mít název id stejný. Prvek s identifikátorem se v CSS označuje znakem # a jménem prvku (bez mezer).

Chceme prvek "nadpisek" zobrazit modrou barvou.
CSS:
#nadpisek {color: blue;}
HTML:
<|jakýkoliv tag, podle názvu nejspíš h3| id="nadpisek">text, zobrazený modře</h3>

Třída prvku

Stejně jako identifikátor slouží k nadefinování vlastních stylů pro různé prvky. Stejnou třídu může mít v HTML dokumentu více tagů. V HTML se třída přiřadí atributem class="jméno_třídy" a v CSS se před selektor (jméno_třídy) napíše tečka.

Chceme některé části textu zvýraznit červeným tučným písmem:
CSS:
.vyrazne {color: red; font-weight: bold}
HTML:
<h1 class="vyrazne">Tučný červený nadpis h1</h1>
<p>Normální odstavec</p>
<p class="vyrazne">Tučný červený odstavec</p>
<span class="vyrazne">Tučný červený text</span>

Často se stává, že chceme, aby se třída .vyrazne zobrazila jinak u nadpisu h1, jinak u odstavce p a jinak u neutrálního tagu span. Proto názvu třídy v CSS předřadíme selektor- jméno HTML tagu.

CSS:
h1.vyrazne {color: red; font-weight: bold}
p.vyrazne {color: blue; font-weight: bold}
span.vyrazne {color: green; font-weight: italic}
HTML:
<h1 class="vyrazne">Tučný červený nadpis h1</h1>
<p class="vyrazne">Tučný modrý odstavec</p>
<span class="vyrazne">Tučný zelený text</span>
<a class="vyrazne">Normální odkaz, protože v CSS není nadefinováno a.vyrazne.</a>
Pokud bychom v CSS kromě tříd h1.vyrazne, p.vyrazne a span.vyrazne nadefinovali ještě .vyrazne (bez selektoru před tečkou), potom by se <a class="vyrazne"> (ale taky <table class="vyrazne">, <div class="vyrazne">...) zobrazilo podle definice v pravidle .vyrazne {}. Tento způsob se nazývá kaskáda- proto kaskádové styly.

Vícenásobné třídy


Pokud chceme jeden prvek zařadit do více tříd, můžeme tak v HTML souboru učinit atributem class="první_třída druhá_třída další_třída". Jednotlivé třídy oddělujeme mezerami. Použití je zejména u rozsáhlejších webů nebo redakčních systémů, kde nemůžeme zasahovat do stylopisu.

Složitější možnost:
.hodnevyrazne {color: red}
.malovyrazne {font-weight: bold}
.extremnevyrazne {color: red; font-weight: bold}
<p class="hodnevyrazne">Červený text</p>
<p class="malovyrazne">Tučný text</p>
<p class="extremnevyrazne">Tučný červený text</p>
Jednodušší možnost:
.hodnevyrazne {color: red}
.malovyrazne {font-weight: bold}
<p class="hodnevyrazne">Červený text</p>
<p class="malovyrazne">Tučný text</p>
<p class="hodnevyrazne malovyrazne">Tučný červený text</p>

Pokud by se hodnoty vzájemně vylučovaly (.hodnevyrazne by mělo nastavený červený text a .malovyrazne modrý), pak bude platit pravidlo, uvedené ve stylopisu později. Je to opět díky kaskádě.

Kombinování a sdružování selektorů

Stylované prvky můžeme popisovat přesněji než jen jediným selektorem. Pravidla CSS umožňují zadat kontext, ve kterém se musí prvek nacházet, aby pravidlu vyhověl. Můžeme tak stanovit, že pravidlo bude platit jen pro prvek, který se nachází uvnitř jiného prvku. Potom zapíšeme do stylopisu popis obou prvků (název tagu, identifikátor nebo třídu) oddělený mezerou (jako první prvek vnější, potom vnitřní).

Odkazy v odstavcích <p> mají být oranžové (při najetí žluté) a v nadpisech <h1> mají mít žluté pozadí (při najetí zelené). Všechny odkazy mají být bez podtržení, jen odkazy v odstavcích se při najetí podtrhnou.
p a {color: orange;}
p a:hover {color: yellow; text-decoration: underline}
h1 a {background-color: yellow}
h1 a:hover {background-color: green}
a {text-decoration: none}
Druhý způsob spojování selektorů slouží výhradně ke zjednodušení a zpřehlednění stylopisu. Pokud chceme nadefinovat stejná pravidla pro více prvků, napíšeme pravidlo jenom jednou a jako selektor použijeme názvy prvků oddělené čárkou.
Delší zápis:
h1 {color: green}
h2 {color: green}
h3 {color: green}
h4 {color: green}
h5 {color: green}
h6 {color: green}
.nadpis {color: green}
#nadpisek {color: green}
Kratší zápis:
h1, h2, h3, h4, h5, h6, .nadpis, #nadpisek {color: green}

Pseudoprvky a pseudotřídy

CSS přidává k prvkům a třídám další informace, které se získají až po zpracování (nebo načtení) HTML dokumentu. Díky tomu můžeme popsat prvek, který je v nějakém stavu (je na něm tabulátor nebo kurzor) nebo je někde jako první (první řádek nebo znak v odstavci, první odstavec v kapitole). Pseudoprvky a pseudotřídy se používají stejně jako třídy, ale před jejich názvem se používá dvojtečka:.
Nejpoužívanější pseudotřídy:
  • :hover Prvek má tuto pseudotřídu, pokud je nad ním kurzor
  • :active Prvek je aktivován (právě se na něj kliknulo)
  • :focused Prvek je zaměřen (většinou je na něm tabulátor)
  • :link Dosud nenavštívený odkaz
  • :visited Navštívený odkaz
  • :first-child Prvek má tuto pseudotřídu, pokud je prvním prvkem uvnitř nějakého jiného (rodičovského) prvku
  • :first-line První řádek textu v určitém prvku
  • :first-letter První znak prvku (pro vytváření iniciál)
a:link {color: blue; text-decoration: none}
/*Nenavštívené odkazy budou modré bez podtržení*/
a:hover {text-decoration: overline}
/*Při najetí se všechny odkazy "nadtrhnou"*/
a:visited:hover {text-decoration: underline}
/*Navštívené odkazy se při najetí místo nadtrhnutí podtrhnou*/
Design a kód Kookie © 2009 | Nahoru| O webu | Televize online | TV online
Základy jazyka HTML Strukturování textů Formátování textu Tvorba seznamů Tvorba odkazů Grafika stránek Barvy na webu Tvorba tabulek Tvorba rámců Tvorba formulářů Neutrální tagy Vývoj HTML- XHTML Úvod do CSS Zápis CSS a propojení s HTML Selektory Výstupní zařízení Dědičnost a kaskáda Typy prvků v CSS Kompletní přehled CSS vlastností Rozdílný vzhled v prohlížečích Délkové jednotky v CSS Ořezávání a posun Obtékání Absolutní pozicování v CSS Relativní pozicování v CSS Layout absolutním pozicováním Layout relativním pozicováním Pokročilý layout - tzv. Svatý grál Nechte své stránky vydělávat! Jak zvýšit návštěvnost Seznam katalogů PHP - dynamické stránky Javascript