Dato due classi di specificità uguale che definiscono la proprietà color, ho pensato che l'ultima classe elencata nell'attributo class element avrebbe avuto la precedenza.Precedenza di più classi che definiscono la proprietà del colore impostata dall'ordine di dichiarazione piuttosto che dall'ordine delle specifiche
Da http://htmlhelp.com/reference/css/structure.html:
Ordine di specificazione Per rendere più facile, quando due norme hanno lo stesso peso, l'ultima regola vince specificati.
Nel seguente esempio di codice vuoto l'ordine in cui sono definite le regole di classe determina la precedenza. Qui l'ultima o più recente definizione della serie di regole ha la precedenza.
<style>
.makeBlue {color: blue;}
.makeGreen {color:green;}
</style>
<div>
<p class="makeGreen makeBlue">makeGreen makeBlue</p>
<p class="makeBlue makeGreen">makeBlue makeGreen</p>
</div>
Il testo di output è verde.
Se scambiare l'ordine di dichiarazione di classe, e dichiarare .makeGreen prima
<style>
.makeGreen {color:green;}
.makeBlue {color: blue;}
</style>
<div>
<p class="makeGreen makeBlue">makeGreen makeBlue</p>
<p class="makeBlue makeGreen">makeBlue makeGreen</p>
</div>
Il testo di output è di colore blu.
Non l'ho mai notato prima. modifica Ho pensato che modifica l'ultima classe elencata nell'attributo classe elemento abbia la precedenza.
modificare Per chiarire -> A volte penso di un elemento come un animale domestico, diciamo un cane. Vedo aggiungere una classe all'attributo di classe dell'elemento come emettere il comando di un cane. Se gli dico di sedermi e poi di dirlo sdraiarsi, mi aspetto che il cane si sdrai. Non mi aspetto che il cane rimanga seduto semplicemente perché gli ho insegnato come sedermi dopo (più recentemente di) a insegnargli come sdraiarsi.
Quindi ... due domande.
- È così che dovrebbe essere? risposto
- Se sì ... perché? Non riesco a vedere il vantaggio di dover scavare attraverso le dichiarazioni della classe per determinare quale è stato dichiarato prima dell'altro.
Grazie mille!
Grazie, quel post risponde alla prima domanda, così come le risposte di j08691 e mathguy54. Sono ancora incerto sul perché questo sia il caso (domanda n. 2). Se mi manca un riferimento comune da qualche parte, per favore fatemelo sapere. Mi piacerebbe capire meglio la ragione alla base del motivo per cui l'ordine di dichiarazione di stile supera l'ordine di apparizione nell'attributo di classe di un elemento. * domanda originale modificata * – IdusOrtus
"Vedo aggiungere una classe all'attributo di classe dell'elemento come emettere il comando di un cane." Non è un buon modo per vederlo. Gli attributi sono * molto * diversi dai comandi. Gli attributi * sono * qualcosa di inerente ad un elemento, mentre i comandi d'altra parte sono cose che un elemento * fa *, spesso in sequenza (o uno dopo l'altro). – BoltClock
In risposta alla tua seconda domanda è semplicemente perché "specificità" è un concetto CSS. Il linguaggio del documento (in questo caso, HTML) non ha alcuna relazione con esso. – BoltClock