Váš třetí příklad se týká řetězení jednoduchých selektorů pomocí kombinátoru potomků, což je něco jako rozmazanější a pomalejší verze kombinátoru potomků. Pokud nepodporujete IE6, měli byste místo něj raději použít kombinátor potomka.

Například #twitter p vs #twitter>p. Prohlížeč nejprve shromáždí všechny prvky p, pak přejde o úroveň výše a zkontroluje, zda tento prvek získal id „twitter“. Pokud nemá, prohlížeč se zde zastaví, pokud jste použili kombinátor potomků. S kombinátorem potomků se vydá až ke kořenovému uzlu (pokud cestou nenajde nějaký #twitter). Falešně pozitivní výsledky jsou tedy u descendentního kombinátoru vždy o něco pomalejší.

Větším problémem descendentního kombinátoru je jeho rozmazanost, která zvyšuje možnost vzniku kolizí. Vedlejším efektem je, že vytváření libovolně vnořitelných struktur je mnohem složitější.

.container #twitter p Je také příliš specifický. Opravdu chcete, aby prvky p uvnitř #twitter vypadaly jinak, pokud #twitter není uvnitř .container?“

Dalším problémem je, že .container je umístění a ne součást struktury. Takže ano… toto pravidlo není znovupoužitelné.

Škálovatelné CSS = znovupoužitelný kód = třídy. Pravidla založená na id nejsou z definice opakovaně použitelná.

Leave a comment

Vaše e-mailová adresa nebude zveřejněna.