HTML & CSS pro začátečníky

HTML & CSS pro začátečníky (část 28): Jak funguje přístup pomocí selektorů (3)

Všechna videa tutoriálu HTML a CSS pro začátečníky

V tomto posledním tutoriálu o selektorech vám představím velmi speciální formu selektorů. Jedná se o tzv. pseudotřídy a pseudoelementy. Jedná se o selektory, které se nevztahují k určitým prvkům HTML, ale jsou generovány výstupním zařízením.

S pomocí pseudotříd a pseudoelementů lze definovat deklarace pro části HTML, které nelze jednoznačně popsat jedním prvkem HTML. Typickými příklady jsou například odkaz, který byl právě kliknut, nebo odkaz, který ještě nebyl navštíven.

Úprava odkazů

Velmi často se chceme věnovat úpravě odkazů na stránce. K tomu nabízí CSS řadu možností, pomocí kterých lze oslovit různé stavy odkazů a nakonec je i opticky upravit.

Pokud například chcete přiřadit odkazu červenou barvu, pak by to vypadalo takto:

a:link {
   color: red; 
}



S a:visited jsou označeny již navštívené odkazy. Pomocí následující syntaxe lze zobrazit takové odkazy, které byly již jednou kliknuty, v modré barvě.

a:visited { 
  color: blue;  
  text-decoration:none; 
}

V prohlížeči to vypadá takto:

HTML a CSS pro začátečníky (část 28): Jak používat selektory (3)

Chcete-li upravit zvlášť odkazy, které jsou právě kliknuty, je to také možné.

a:active { 
   font-weight: bold; 
   color: blue; 
   text-decoration: none; 
}



K tomu se používá syntaxe a:active.

HTML a CSS pro začátečníky (část 28): Jak docílit přístupu pomocí selektorů (3)



Syntaxe a:hover se naopak vztahuje k situaci, kdy se myší miká přes odkaz. Kromě toho existuje s a:focus ještě další pseudoelement. Tento popisuje okamžik, kdy odkaz získává focus.

Další pseudoelementy

Existují pseudoelementy, pomocí nichž lze oslovit části jiných prvků. Typickým příkladem je ::first-letter. Tento pseudoelement vybírá první znak aktuálního prvku. Může být použit pro všechny prvky obsahující text. Pozor: Pseudoelementy musí být uvedeny pouze na konci všech selektorů. Musí tedy být před otevírací složenou závorkou.

h1::first-letter { 
   color: blue; 
}



Pomocí ::first-line lze oslovit první řádek prvku. Tento pseudoelement je použitelný pouze na elementy na úrovni bloku. Jedno příklad:

p::first-line { 
   background-blue; 
}



A zde je výsledek v prohlížeči:

ein

HTML & CSS pro začátečníky (část 28): Jak dosáhnout přístupu pomocí selektorů (3)

Pomocí pseudoelementů :after a :before lze před a po prvku zobrazit dodatečné obsahy. Pomocí content se určuje, co má být zobrazeno.

• normal – pseudoelement, který je obvykle definován, není generován.

• none – pseudoelement není vygenerován.

• <string> – bude vypsána uvedená řetězcová hodnota. Řetězce je třeba uvést v jednoduchých nebo dvojitých uvozovkách.

• <uri> – vloží se zdroj uvedený pod URI.

• <counter> – definuje počítadlo nebo oslovuje konkrétní počítadlo.

• attr(<identifier>) – hodnota atributu uvedená v závorkách se vloží.

• close-quote – vloží uzavírací uvozovky.

• no-close-quote – sice se nevloží uzavírací uvozovky, ale hloubka zanoření se zvýší o jedna.

• no-open-quote – sice se nevloží otvírací uvozovky, ale hloubka zanoření se zvýší o jedna.

• open-quote – zobrazí se otevírací uvozovky.

Jedno příklad:

ul li:before { 
   content: uri("bullet.gif"); 
}



S CSS3 byl zaveden pseudoselektor :not. Pomocí něj lze velmi snadno cíleně vybírat obsah. První příklad ukazuje, jak výkonný tento pseudoselektor vlastně je. Předpokládejme, že chcete vybrat všechny odkazy, které nemají atribut href. Příslušná syntaxe by vypadala následovně:

a:not([href])



"Běžné" odkazy by tímto způsobem nebyly ovlivněny. Přístup ke konkrétním definicím kotvy by však byl úspěšný.

<a name="top">Seitenanfang</a>

Pomocí trochu detailnějšího příkladu lze demonstrovat výkonnost :not. V rámci dokumentu byly definovány různé odstavce textu.

<body>
<h1>PSD-Tutorials.de</h1>
<p>Das ist ein Absatz.</p>
<p>Das ist ein weiterer Absatz.</p>
<div>Das ist ein Textbereich.</div>
<a href="http://www.psd-tutorials.de" target="_blank">PSD-Tutorials.de</a>
</body>



Kromě textových odstavců označených p existuje také oblast div a hypertextový odkaz. Nyní bude následující:

• Všechny odstavce označené p dostanou černou barvu písma.

• Na místech, kde nejsou žádné odstavce p, se naopak bude používat červená barva písma.

Příslušná CSS syntaxe vypadá následovně:

p {
    color:#000;
 }
 :not(p) {
    color:#ff0000;
 }

Princip dědičnosti

Jednou z nejdůležitějších věcí při porozumění CSS definic je dědičnost. Ve skutečnosti jsou v CSS stylové vlastnosti zděděny z jednoho na druhý prvek.

Příklad:

html {
    color: red
 }

Tato definice přiřazuje prvku html červenou barvu popředí.

HTML & CSS pro začátečníky (část 28): Jak funguje přístup pomocí selektorů (3)

Kvůli principu dědičnosti se tato definice barvy vztahuje pouze na obsah divu. Odstavec p se však zobrazuje černým písmem.

V CSS existuje několik způsobů, jak stanovit stylové definice. To je také důvod, proč mohou být pro prvek protichůdné pokyny. Pro tyto případy CSS stanovuje váhovací princip. Tímto principem je pevně ošetřeno, které pokyny mají pro prvek přednost. Nemám v úmyslu jít do posledního detailu tohoto principu. Podrobné informace naleznete například na stránce http://wiki.selfhtml.org/wiki/CSS/Kaskade nebo také na stránce http://www.thestyleworks.de/basics/cascade.shtml.

Co je mi důležité, je ukázat, na co si musíte dávat pozor při definování CSS vlastností. K tomu slouží následující příklad:

<!DOCTYPE html>
<html lang="de">
<head>
<title>PSD-Tutorials.de</title>
<meta charset="UTF-8" />
<style>
body {
   font-family:Arial, Helvetica, sans-serif;
   font-size: 90%;
}
p {
   color: #000;
}
h1 {
   font-size: 120%;
   font-weight: normal;
}
strong {
   color:#CCCCCC;
}
h2 strong {
   color: red;
}
</style>
</head>
<body>
<div>
  <h1>PSD-Tutorials.de</h1>
  <p>Toto je odstavec s <strong>tuctovým slovem</strong>.</p>
  <h2>Toto je nadpis s <strong>tuctovým slovem</strong>.</h2>
</div>
</body>
</html>

V prohlížeči to vypadá následovně:

HTML & CSS pro začátečníky (část 28): Jak funguje přístup pomocí selektorů (3)



Jak vidíte, slova označená strong jsou formátována různě. Který formátování se použije, závisí na pořadí definic.

Alternativně je zde klíčové slovo !important, kterým můžete označit CSS instrukci jako zvláště důležitou.

<style>
body {
   font-family:Arial, Helvetica, sans-serif;
   font-size: 90%;
}
p {
   color: #000;
}
h1 {
   font-size: 120%;
   font-weight: normal;
}
strong {
   color:#CCCCCC !important;
}
h2 strong {
   color: red;
}
</style>

Zde je opět pohled na výsledek:

HTML & CSS pro začátečníky (část 28): Jak funguje přístup pomocí selektorů (3)



Určitě si v rámci tohoto souvislosti přečtěte také zmiňované zdroje v tomto tutoriálu. (I když se pro začátek nemusíte příliš hluboko v této problematice ponořit).