Rozdíly v aplikaci CSS selektorů, pseudoelementů a pseudotříd

21. 1. 2010 - Karel Müller – Webmaster

Podívejme se, jak prohlížeče na začátku roku 2010 zpracovávají standardy selektory, pseudotřídy a pseudoelementy bezmála 12 let staré specifikace CSS2.


Zkoumání budeme provádět v nejpoužívanějších prohlížečích: Opera 10.10, Firefox 3.5, Chrome 3, Safari 4, Internet Explorer 8, Internet Explorer 7 a Internet Explorer 6.

U každého bodu uvedu příklad, krátký popis a podporu.

Selektory

Typový selektor

Příklad

 a {
	color: #0000ff;
}

Popis

Aplikuje se na všechny elementy a.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

Selektor třídy

Příklad

a.myClass {
	color: #0000ff;
}

Popis

Aplikuje se na všechny elementy a s atributem class="myClass".

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

Vícenásobné třídy

Příklad

.underline {
	text-decoration: underline;
}
.strong {
	font-weight: bold;
}
.coloured {
	color: red;
}
.underline.strong.coloured {
	font-size: 200%;
}
	<p class="underline strong coloured">Lorem ipsum</p>
	<p class="coloured">Lorem ipsum</p>
	<p class="strong">Lorem ipsum</p>
	<p class="coloured strong">Lorem ipsum</p>

Popis

Vícenásobné třídy se aplikují na elementy s nadefinovanými více třídami.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ne

Chyba

Internet Explorer 6 přidává vlastnosti z poslední vícenásobné třídy k samostatně nadefinované třídě. Podle ukázkového příkladu budou mít v IE6 všechny classy coloured dvakrát větší písmo. Správně by tuto vlastnost měli mít, pouze pokud jsou definované všechny tři třídy (underline, strongcoloured).

Selektor identifikátoru

Příklad

a#myID {
	color: #0000ff;
}

Popis

Aplikuje se na všechny elementy a s identifikátorem id=myID.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

Selektor následníka

Příklad

 p a {
	color: #0000ff;
}

Popis

Aplikuje se na všechny elementy a, které jsou uvnitř elementu p.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

Univerzální selektor

Příklad

* {
	color: #0000ff;
}

Popis

Univerzální selektor * se vztahuje na úplně všechny elementy.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

Selektor potomka

Příklad

body>p {
	color: #0000ff;
}

Popis

Selektor potomka vybere všechny elementy, které jsou bezprostředními potomky mateřského elementu. V tomto případě se aplikuje pouze na elementy p, které jsou přímo v elementu body, nikoliv už na elementy p, které jsou v kódu dále zanořeny.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ne

Selektor obecných sourozenců

Příklad

h2~p {
	color: #0000ff;
}

Popis

Selektor obecných sourozenců vybere všechny elementy p, které mají stejného rodiče jako element h2 a zároveň následují za ním.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ne

Selektor přilehlých sourozenců

Příklad

h2+p {
	color: #0000ff;
}

Popis

Selektor přilehlých sourozenců vybere všechny elementy p, které mají stejného rodiče jako element h2 a zároveň přímo následují za ním.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ne

Chyba

V IE7 selektor přilehlých sourozenců nebude fungovat, pokud je v HTML komentář mezi přilehlými sourozenci.

Selektor s atributem

Příklad

[id] {
	color: #0000ff;
}

Popis

Tento výběr se aplikuje na elementy, které mají nastavený daný atribut. V našem případě atribut id.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ne

Pseudoelementy

První řádek

Příklad

p:first-line {
	color: #0000ff;
}

Popis

Prohlížeč u každého elementu p zobrazí první řádek nadefinovaným stylem. Tento pseudoelement funguje pouze na blokových elementech.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

První písmeno

Příklad

p:first-letter {
	color: #0000ff;
}

Popis

Prohlížeč u každého elementu p zobrazí první písmeno nadefinovaným stylem. Tento pseudoelement funguje pouze na blokových elementech.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

Pseudoelementy :after, :before

Příklad

#box:before {
	content: "Tento text se objeví před prvkem s identifikátorem box."
}
#box:after {
	content: "Tento text se objeví za prvkem s identifikátorem box."
}

Popis

Tyto pseudoelementy slouží ke generovaní obsahu před nebo po zadaném prvku, které se používají ve spojení s vlastností content.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ne ne

Pseudotřídy

První potomek

Příklad

div :first-child {
	color: #0000ff;
}

Popis

Požadovaný styl je aplikovaný na všechny elementy, které jsou prvním potomkem elementu div.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ne

Nenavštívený odkaz

Příklad

a:link {
	color: #0000ff;
}

Popis

Třída je aplikovaná na ještě nenavštívený odkaz.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

Navštívený odkaz

Příklad

a:visited {
	color: #0000ff;
}

Popis

Třída je aplikovaná na již navštívený odkaz.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

Aktivní odkaz

Příklad

a:active {
	color: #0000ff;
}

Popis

Třída je aplikovaná na aktivovaný odkaz. Došlo ke kliknutí na odkaz, ale ještě nebylo puštěno tlačítko myši.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

Odkaz po najetí

Příklad

a:hover {
	color: #0000ff;
}

Popis

Třída je aplikovaná, pokud uživatel nad odkazem přejede.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ano

Najetí na neodkazové elementy

Příklad

p:hover {
	color: #0000ff;
}

Popis

Třída je aplikovaná po přejetí nad elementem p.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ano ne

Zaměření

Příklad

:focus {
	color: #0000ff;
}

Popis

Třída je aplikovaná, pokud je element zaměřený (ve většině prohlížečů pomocí klávesy TAB).

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ne ne

Jazyková pseudotřída

Příklad

:lang(de) {
	color: #0000ff;
}

Popis

Třída je aplikovaná na všechny elementy psané německy.

Podpora

Opera Firefox Chrome Safari IE8 IE7 IE6
ano ano ano ano ano ne ne

Co říci na závěr? Všechny nové prohlížeče selektory, pseudoelementy a pseudotřídy implementují bez problémů. Komplikace nastávají u starších prohlížečů, jako je Internet Explorer 7 a jeho starší bratříček Internet Explorer 6. Internet Explorer má v dnešní době stále přes desetiprocentní zastoupení, takže všechny výše zmiňované selektory, pseudoelementy a pseudotřídy ještě nějaký čas nebudeme moci plně používat.


Potřebujete...

... profesionální webovou prezentaci?

Realizujeme firemní weby, rozsáhlé portály i stručné microsites.

  • Analýzy a testování
  • Špičkový design
  • Tvorba struktury, textů nebo videa
  • Systém pro správu obsahu

Více informací

... efektivně komunikovat uvnitř firmy?

Komplexně zajistíme efektivní intranetové řešení.

  • Návrh business procesů
  • Systém pro správu obsahu
  • Personalizovaný přístup
  • Integrace s dalšími systémy

Více informací

... úspěšnou on-line kampaň?

Proměníme návštěvníky internetu v zákazníky.

  • Microsites a hry
  • E-mail a mobilní marketing
  • Videa pro internet
  • Multimediální CD a DVD

Více informací

FG Tipy

Internet už používá 53 % české populace.

Získejte mezi nimi nové zákazníky - nabídka je široká!

Zkušenost s nákupem on-line má více než čtvrtina Čechů starších 15 let.

Prodávejte na internetu - přes weby a portály!

3 ze 4 uživatelů se díky vyhledávačům seznamují s novými značkami. Většina značku považuje za kvalitní a významnou, pokud ji vyhledávač uvede na přední pozici.

Vyzkoušejte on-line marketing!

Reklamní hry, které mají tématickou návaznost na značku, výrazně pomáhají utvářet pozitivní vztah se zákazníky.

Získejte si náklonnost internetových uživatelů originální on-line kampaní!

Způsob čtení z webu je specifický. Internetový čtenář je nedočkavý a text vstřebává nesouvisle.

Nepodceňujte to - objednejte si profesionální weby a portály!

Mobilní telefon používá 89 % obyvatel ČR ve věku nad 15 let.

Vyzkoušejte mobilní marketing!

Názor na web si uživatel utvoří během první vteřiny návštěvy. Do 30 vteřin odejde, pokud není spokojen. Ve 4 případech z 10 se už nevrátí.

Objednejte si profesionální webová řešení!

Polovina aktivních uživatelů před nákupem běžně hledá informace o produktu na internetu.

Udržujte svůj web aktuální - pomocí Edee CMS!

Internet patří mezi nejvýznamnější zdroje informací o produktech a značkách. Dle mnoha výzkumů jej uživatelé v tomto směru řadí už na 2. místo.

Internet vám získá nové zákazníky - objednejte si profesionální web!

Správná vnitrofiremní komunikace nejen podporuje týmovost a výkonnost zaměstnanců. Výrazně ovlivňuje úspěch celé společnosti.

Komunikujte se zaměstnanci rychle, efektivně a zábavně - pomocí intranetu!


Odběr článků

odebírat přes RSS

Tiskové zprávy

Tiskové zprávy o nás a našich projektech.

Čtěte

2