2009-09-22 17 views

Respuesta

272

Probar:

div#a { 
    background-image:none 
} 
+10

Simplemente use '#a {}'. [No use tipos de elemento en los selectores a menos que sea necesario] (http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml#Type_selectors). –

+3

"Evitar los selectores ancestros innecesarios es útil por motivos de rendimiento". No es realmente un problema cuando no eres Google. – Davor

+0

W3C Recomendación sobre CSS 3 Selectores> Cálculo de la especificidad de un selector https://www.w3.org/TR/css3-selectors/#specificity – TarranJones

32
div#a { 
    background-image: none; 
} 
0

no funciona esto:

.clear-background{ 
background-image: none; 
} 

podría tener problemas en los navegadores antiguos ...

25
div#a { 
    background-image: none !important; 
} 

Aunque el "importante! "podría no ser necesario, porque" div # a "tiene una mayor s Pecificity que simplemente "div".

+0

La parte importante no es necesaria ya que la declaración con #a es más precisa que una declaración de div y, por lo tanto, esta regla se aplicará en lugar de la regla div general. – Ruud

+0

Me pareció importante ser necesario en Chrome – dlchambers

1

Si su regla de div es solo div {...}, entonces #a {...} será suficiente. Si es más complicado, necesita un selector "más específico", como se define en el CSS specification on specificity. (#a ser más específico que es div aspecto simplemente única en el algoritmo.)

10
div#a { 
    background-image: url('../images/spacer.png'); 
    background-image: none !important; 
} 

utilizo una imagen de espaciador transparente, además de la regla para eliminar la imagen de fondo debido a IE6 parece ignorar la background-image: none aunque está marcado !important.

+5

¿A quién le importa IE6 en estos días. –

+0

-1 Tu respuesta es incorrecta. Inicié IE6, y 'background-image: none;' (con ot sin '! Important') funciona sin problemas. –

+5

En realidad, me importa: uno de mis clientes tiene un entorno de red aislado con algún software específico que no se ha actualizado. IE6 es lo que tienen que usar.Triste pero cierto :( –

0

Reemplazar la regla que tiene con lo siguiente:

div:not(#a) { // add your bg image here //} 
1
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(0.5, #fff)); 
background-image: -webkit-linear-gradient(center top, #fff 0%, #fff 50%); 
background-image: -moz-linear-gradient(center top, #fff 0%, #fff 50%); 
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ffffff', GradientType=0); 
background-image: linear-gradient(to bottom, #fff 0%, #fff 50%); 

para navegadores antiguos .. si usted ha definido css en algún framewokrk.css como select2.css en IE9 background-image: -webkit-gradient etc. y lo quiere a través de otro .cs s reescribir con "background-image: none! important" no funciona. Utilicé el mismo color para degradar el color como el color de fondo de la página.