Hay diferentes formas en las que se pueden anular las propiedades. Asumiendo que tienes
.left { background: blue }
por ejemplo, cualquiera de los siguientes lo anularía:
a.background-none { background: none; }
body .background-none { background: none; }
.background-none { background: none !important; }
Los dos primeros "ganan" por la especificidad del selector; el tercero gana con !important
un instrumento contundente.
También puede organizar sus hojas de estilo para que, por ejemplo, la regla
.background-none { background: none; }
gana simplemente por orden, es decir, por ser después de una regla de otra manera igualmente “poderoso”. Pero esto impone restricciones y requiere que tenga cuidado al reorganizar las hojas de estilo.
Todos estos son ejemplos de CSS Cascade , un concepto crucial pero ampliamente incomprendido. Define las reglas exactas para resolver conflictos entre las reglas de la hoja de estilo.
PD Usé left
y background-none
como se usaron en la pregunta. Son ejemplos de nombres de clases que no deben usarse, ya que reflejan una representación específica y no roles estructurales o semánticos.
left
ybackground-none
debe evitarse?button
,name-label
, etc.). Otros creen que el CSS se vuelve inmanejable si se utiliza este enfoque y se debe utilizar "utilidad de primera" o css "funcional" donde las clases se corresponden con los valores de propiedad (por ejemplomargin-top-4
,width-10
, etc.). Históricamente, el enfoque "semántico" ha sido dominante, mientras que recientemente el enfoque "funcional" ha ido ganando adeptos. Pruebe ambos en un proyecto de tamaño mediano y luego decida por sí mismo cuál es superior.Solo utilícelo
!important
ayudará a anularAunque se dice que es una mala práctica,
!important
puede ser útil para las clases de servicios públicos, solo necesita usarlo de manera responsable, verifique esto: Cuando Usar importante es la opción correctafuente
Como alternativa a la
important
palabra clave, puede hacer que el selector sea más específico, por ejemplo:(Nota: no hay espacio entre los nombres de las clases).
En este caso, la regla se aplicará cuando ambos
.left
y.background-none
estén enumerados en el atributo de clase (independientemente del orden o la proximidad).fuente
Debe anular aumentando la especificidad de su estilo. Hay diferentes formas de aumentar la especificidad. El uso de lo
!important
que afecta la especificidad, es una mala práctica porque rompe la cascada natural en su hoja de estilo.El siguiente diagrama tomado de css-tricks.com lo ayudará a producir la especificidad correcta para su elemento en función de una estructura de puntos. La especificidad que tenga puntos más altos, ganará. Suena como un juego, ¿no?
Consulte los cálculos de muestra aquí en css-tricks.com . Esto te ayudará a comprender muy bien el concepto y solo te llevará 2 minutos.
Si luego le gusta producir y / o comparar diferentes especificidades usted mismo, pruebe esta Calculadora de especificidad: https://specificity.keegan.st/ o simplemente puede usar papel / lápiz tradicional.
Para obtener más información, pruebe MDN Web Docs .
Todo lo mejor para no usar
!important
.fuente
Si enumera la
bakground-none
clase después de las otras clases, sus propiedades anularán las ya establecidas. No es necesario utilizarlo!important
aquí.Por ejemplo:
y
El enlace no tendrá fondo rojo. Tenga en cuenta que esto solo anula las propiedades que tienen un selector que es menos o igualmente específico.
fuente
LIFO es la forma en que el navegador analiza las propiedades de CSS. Si está utilizando Sass, declare una variable llamada como
utilícelo en lugar de asignar directamente valores como rojo o azul. Cuando desee anular, simplemente reasigne el valor a
luego
debería anular sin problemas. Usar "! Important" no siempre es la elección correcta. Es solo una revisión
fuente