Estoy tratando de cambiar el color de fondo de un elemento de la lista, mientras que hay otro color de fondo para otros elementos de la lista.Artículo de la lista de cambio CSS color de fondo con clase
Esto es lo que tengo:
<style type="text/css">
ul.nav li
{
display:inline;
padding:1em;
margin:1em;
background-color:blue;
}
.selected
{
background-color:red;
}
</style>
<ul class="nav">
<li>Category 1</li>
<li>Category 2</li>
<li class="selected">Category 3</li>
<li>Category 4</li>
</ul>
Lo que esto produce es todos los elementos de la lista con un fondo azul (de la clase "nav"), como si no hubiera ninguna clase "seleccionado". Sin embargo, cuando saco el color de fondo de la clase "nav", obtengo el fondo rojo para el elemento de la lista con la clase "seleccionada".
Me gustaría utilizar la clase "seleccionada" para otros elementos en la página (es decir, otros elementos de la lista, divs, etc.).
¿Cómo podría solucionar esto?
Gracias de antemano.
¡Gracias! De nuevo, no sabía acerca de la especificidad.¿Significa esto que no puedo tener una clase para afectar a todos los elementos secundarios si hubiera declarado un estilo para esos elementos? –
Acabo de encontrar que "! Importante" de la respuesta anterior para hacer esto. ¿Existe una desventaja al usar "! Important"? –
Hay compensaciones. ! important es una herramienta de último recurso: es fácil de usar en exceso, y aunque es simple al principio, termina complicando tu código a largo plazo. La regla general es que si no tiene que usar! Importante (y generalmente no lo hace), entonces no lo haga. Incluso entonces, querrás estar atento a la especificidad porque! Importante puede ser anulado. Por lo general, es menos claro * cuando * será (una de las razones para preferir la especificidad del selector). –