Il tuo terzo esempio riguarda la concatenazione di selettori semplici tramite il combinatore discendente, che è come una versione più confusa e lenta del combinatore figlio. Se non supportate IE6, dovreste invece usare il combinatore figlio.

Per esempio, #twitter p vs #twitter>p. Prima, il browser raccoglie tutti gli elementi p, poi sale di un livello e controlla se questo elemento ha l’id “twitter”. Se non ce l’ha, il browser si fermerà qui se avete usato il combinatore figlio. Con il combinatore discendente viaggerà fino al nodo radice (se non trova qualche #twitter sulla sua strada). Quindi, i falsi positivi sono sempre leggermente più lenti con il combinatore discendente.

Il problema maggiore con il combinatore discendente è la sua sfocatezza, che aumenta la possibilità di collisioni. Come effetto collaterale, creare strutture arbitrariamente nestabili diventa molto più complicato.

.container #twitter p è anche eccessivamente specifico. Vuoi davvero che gli elementi p dentro #twitter abbiano un aspetto diverso se #twitter non è dentro .container?

Un altro problema è che .container è una posizione e non parte della struttura. Quindi, sì… quella regola non è riutilizzabile.

CSS scalabile = codice riutilizzabile = classi. Le regole basate sull’id sono, per definizione, non riutilizzabili.

.

Leave a comment

Il tuo indirizzo email non sarà pubblicato.