¿Qué !important
significa en CSS?
¿Está disponible en CSS 2? CSS 3?
¿Dónde está soportado? Todos los navegadores modernos?
¿Qué !important
significa en CSS?
¿Está disponible en CSS 2? CSS 3?
¿Dónde está soportado? Todos los navegadores modernos?
Respuestas:
Significa, esencialmente, lo que dice; que "esto es importante, ignore las reglas posteriores y cualquier problema de especificidad habitual, ¡aplique esta regla!"
En el uso normal, una regla definida en una hoja de estilo externa es anulada por un estilo definido en el head
documento, que, a su vez, es anulado por un estilo en línea dentro del elemento mismo (asumiendo la especificidad igual de los selectores). La definición de una regla con el !important
'atributo' (?) Descarta las preocupaciones normales con respecto a la regla 'posterior' que anula las 'anteriores'.
Además, normalmente, una regla más específica anulará una regla menos específica. Entonces:
a {
/* css */
}
Normalmente es anulado por:
body div #elementID ul li a {
/* css */
}
Como el último selector es más específico (y normalmente no importa dónde se encuentre el selector más específico (en la head
hoja de estilo o en la hoja de estilo externa), todavía anulará el selector menos específico (los atributos de estilo en línea siempre anule el selector específico 'más-' o 'menos-', ya que siempre es más específico.
Sin embargo, si agrega !important
a la declaración CSS del selector menos específico, tendrá prioridad.
Usar !important
tiene sus propósitos (aunque me cuesta pensar en ellos), pero es muy parecido a usar una explosión nuclear para detener a los zorros que matan a tus gallinas; Sí, los zorros serán asesinados, pero también los pollos. Y el barrio.
También hace que depurar tu CSS sea una pesadilla (desde la experiencia personal, empírica).
important!
(importante NO)
La regla! Importante es una forma de hacer que su cascada de CSS pero también tenga las reglas que cree que son cruciales siempre se deben aplicar. Una regla que tiene la propiedad! Important siempre se aplicará sin importar dónde aparezca esa regla en el documento CSS.
Entonces, si tienes lo siguiente:
.class {
color:red !important;
}
.outerClass .class {
color:blue;
}
la regla con lo importante será la aplicada (sin contar la especificidad )
Creo que !important
apareció en CSS1, por lo que todos los navegadores lo admiten (IE4 a IE6 con una implementación parcial, IE7 + completo)
Además, es algo que no desea usar con bastante frecuencia, porque si está trabajando con otras personas puede anular otras propiedades.
!
es un símbolo de NO en algunos idiomas, pero ahora es más claro.
!important
. CSS es lo suficientemente diferente de otros lenguajes que es fácil olvidar cómo usar ciertas cosas.
important!
, o tal vez IMPORTANT!
, en lugar de !important
. Me pregunto si alguien (que podría leer esto) sabe por qué lo definieron con la puntuación en frente. Obviamente, es demasiado tarde para cambiarlo ahora.
!important
es parte de CSS1.
Navegadores compatibles: IE5.5 +, Firefox 1+, Safari 3+, Chrome 1+.
Significa, algo como:
¡Úsame si no hay nada más importante alrededor!
No puedo decirlo mejor.
!important
no se limita solo a Safari 3+; lo ha apoyado desde el principio como todos los demás navegadores que no son IE. IE lo comprende desde la versión 4 en adelante, pero solo lo admite sin errores a partir de la versión 7.
Se utiliza para influir en la ordenación en la cascada CSS cuando se realiza la ordenación por origen. No tiene nada que ver con la especificidad como se indica aquí en otras respuestas.
Aquí está la prioridad de menor a mayor:
Después de eso, tiene lugar la especificidad de que las reglas todavía tienen un dedo en el pastel.
Referencias
!important
es un modificador para el orden en cascada developer.mozilla.org/en-US/docs/Web/CSS/Cascade (consulte la tabla como referencia).
Cambia las reglas para anular la prioridad de las cascadas css. Ver la especificación CSS2 .