Cosa !important
significa in CSS?
È disponibile in CSS 2? CSS 3?
Dove è supportato? Tutti i browser moderni?
Cosa !important
significa in CSS?
È disponibile in CSS 2? CSS 3?
Dove è supportato? Tutti i browser moderni?
Risposte:
Significa essenzialmente ciò che dice; che "questo è importante, ignora le regole successive e qualsiasi normale problema di specificità, applica questa regola!"
Nell'uso normale una regola definita in un foglio di stile esterno viene sovrascritta da uno stile definito nel head
documento, che a sua volta viene sovrascritto da uno stile in linea all'interno dell'elemento stesso (assumendo la stessa specificità dei selettori). La definizione di una regola con l' !important
attributo "attributo" (?) Elimina le normali preoccupazioni per quanto riguarda la regola "successiva" che ha la precedenza su quelle "precedenti".
Inoltre, normalmente, una regola più specifica avrà la precedenza su una regola meno specifica. Così:
a {
/* css */
}
Viene normalmente annullato da:
body div #elementID ul li a {
/* css */
}
Poiché quest'ultimo selettore è più specifico (e normalmente non importa dove si trova il selettore più specifico (nel head
foglio di stile esterno o) sostituirà comunque il selettore meno specifico (gli attributi di stile in linea rimarranno sempre sovrascrive il selettore "più-" o "meno", in quanto è sempre più specifico.
Se, tuttavia, si aggiunge !important
alla dichiarazione CSS del selettore meno specifico, avrà priorità.
Usare !important
ha i suoi scopi (anche se faccio fatica a pensarli), ma è molto come usare un'esplosione nucleare per fermare le volpi che uccidono i tuoi polli; sì, le volpi saranno uccise, ma anche i polli. E il quartiere.
Inoltre rende il debug dei CSS un incubo (per esperienza personale, empirica,).
important!
(importante NON)
La regola! Important è un modo per rendere il tuo CSS in cascata ma anche avere le regole che ritieni più cruciali vengano sempre applicate. Una regola che ha la proprietà! Important sarà sempre applicata indipendentemente da dove appare quella regola nel documento CSS.
Quindi, se si dispone di quanto segue:
.class {
color:red !important;
}
.outerClass .class {
color:blue;
}
la regola con l'importante sarà quella applicata (senza contare la specificità )
Credo che sia !important
apparso in CSS1, quindi ogni browser lo supporta (da IE4 a IE6 con un'implementazione parziale, IE7 + completo)
Inoltre, è qualcosa che non vuoi usare abbastanza spesso, perché se lavori con altre persone puoi ignorare altre proprietà.
!
è un simbolo di NOT in alcune lingue ma ora è più chiara.
!important
. Il CSS è abbastanza diverso da altre lingue che è facile dimenticare come usare certe cose.
important!
, o forse IMPORTANT!
, piuttosto che !important
. Mi chiedo se qualcuno (che potrebbe leggere questo) sa perché l'hanno definito con la punteggiatura davanti? Ovviamente, è troppo tardi per cambiarlo ora.
!important
fa parte di CSS1.
Browser che lo supportano: IE5.5 +, Firefox 1+, Safari 3+, Chrome 1+.
Significa qualcosa come:
Usami, se non c'è niente di importante in giro!
Non posso dire di meglio.
!important
non è limitato a Safari 3+; lo ha supportato fin dall'inizio come tutti gli altri browser non IE. IE lo capisce dalla versione 4 in poi, ma lo supporta solo senza errori a partire dalla versione 7.
Viene utilizzato per influenzare l'ordinamento nella cascata CSS quando viene eseguito l'ordinamento per origine. Non ha nulla a che fare con la specificità come indicato qui in altre risposte.
Ecco la priorità dal più basso al più alto:
Dopo quella specificità si verifica per le regole che hanno ancora un dito nella torta.
Riferimenti:
!important
è un modificatore dell'ordine a cascata developer.mozilla.org/en-US/docs/Web/CSS/Cascade (vedere la tabella per riferimento).
Cambia le regole per la priorità di override delle cascate CSS. Vedi le specifiche CSS2 .