2011-11-11 16 views
12

Sono curioso di sapere perchè usando > o altri combinatori non influenza la specificity di selettori CSS, vale a dire il motivo per cui div span (corrispondente ad una durata di qualche all'interno di un div) e div > span (che corrispondono a un arco che è il figlio diretto di un div) sono considerati uguali per quanto riguarda la specificità.Perché "foo bar" e "foo> bar" hanno la stessa specificità nei CSS?

Mi rendo conto che l'uso di combinatori è del tutto irrilevante per la specificità, ma mi chiedo se c'è un motivo per farlo.

+0

Suppongo che sia solo perché sono specifici l'uno dell'altro ... "a' span' che è un discendente di un 'div'" e "a' span' che è figlio di un 'div' ", piuttosto che qualcosa di più specifico, come" a 'span' con qualche nome di classe che è figlio di un' div' ". –

+0

Beh, si potrebbe obiettare che * alcuni * span all'interno di un div non sono specifici come uno span che è un * immediato * figlio di un div – ThiefMaster

+0

Sì, molto vero. Buona domanda! –

risposta

8

Questo è stato effettivamente inserito nella mailing list del gruppo di lavoro, molto indietro quando, in this thread.

Fondamentalmente si tratta di, sì, intuitivamente un selettore con un combinatore sembra più specifico, ma un algoritmo, esteso da quello attuale, con questo in mente diventa molto più complicato delle "semplici" terzine usate ora, che è abbastanza confuso per le persone così com'è.

Infine,

 
While this could have been the case, this is one of the few things in CSS2 
that have been interoperably implemented for years, and therefore won't 
change in CSS2.1. 

"Se non è rotto, non aggiustarlo". sembrava essere l'ultima chiamata.

Problemi correlati