En CSS existe una regla con la que un usuario y/o webmaster (autor) puede hacerle saber al navegador que una propiedad, para un elemento, tiene un valor importante y debe sobre-escribir estilos antes definidos para ese objeto, la regla !important. La pregunta es ¿a quién favorecerá el navegador? La W3 lo dice así en su capítulo Cascading Order:
Aunque sea un poco confuso, las declaraciones más abajo en la lista tienen más relevancia.
Por ejemplo, comparando las líneas de ejemplo en la página de la W3:
/* Hoja de estilos de usuario */
p { text-indent: 1em ! important }
p { font-style: italic ! important }
p { font-size: 18pt }
/* Hoja de estilos de autor */
p { text-indent: 1.5em !important }
p { font: normal 12pt sans-serif !important }
p { font-size: 24pt }
La primera regla en la hoja de estilos de usuario es más relevante que la misma línea en la hoja de estilos de autor, aún cuando ambas tienen la declaración !important. La segunda línea también ganará por la misma razón. Sin embargo, la tercera línea en la hoja de estilos de usuario no es !important y entonces perderá en relación con la segunda línea de la hoja de estilos de autor, pues está definida como propiedad shorthand !important. Tambiń, la tercera línea en la hoja de estilos de autor perderá contra la segunda línea de la misma hoja de estilos, pues la segunda línea es !important, esto muestra que las declaraciones !important también pueden usarse en la misma hoja de estilos de autor para reemplazar estilos.
Debe recalcarse que la declaración !important tiene objetivos de usabilidad/accesibilidad y respetar su uso pues podría causar el acceso a la información por débiles visuales y/o capacidades diferentes… ayjuesu.