2009-09-22 23 views

risposta

272

Prova:

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

Basta usare '#a {}'. [Non utilizzare i tipi di elemento nei selettori se non necessario] (http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml#Type_selectors). –

+3

"Evitare selettori di antenati non necessari è utile per motivi di prestazioni." Non è davvero un problema quando non sei Google. – Davor

+0

Raccomandazione W3C sui selettori CSS 3> Calcolo della specificità di un selettore https://www.w3.org/TR/css3-selectors/#specificity – TarranJones

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

Does not questo lavoro:

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

potrebbero avere problemi su browser più vecchi ...

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

Anche se il "importante! "potrebbe non essere necessario, perché" div # a "ha un valore più alto specificità rispetto a "div".

+0

La parte! Importante non è necessaria in quanto la dichiarazione con #a è più precisa di una dichiarazione di div e quindi questa regola verrà applicata al posto della regola generale div. – Ruud

+0

Ho trovato importante essere necessario in Chrome – dlchambers

1

Se la regola div è solo div {...}, quindi #a {...} sarà sufficiente. Se è più complicato, è necessario un selettore "più specifico", come definito dallo CSS specification on specificity. (#A essendo più specifico rispetto div è funzione solo singolo nell'algoritmo.)

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

Utilizzo un elemento spaziatore trasparente in aggiunta alla regola per rimuovere l'immagine di sfondo perché IE6 sembra ignorare il background-image: none pur è contrassegnato con !important.

+5

A chi importa di IE6 in questi giorni. –

+0

-1 La tua risposta non è corretta. Ho avviato IE6 e l'immagine di sfondo: none; '(con ot senza'! Important') funziona perfettamente. –

+5

In realtà, mi interessa - uno dei miei clienti ha un ambiente di rete isolato con alcuni software specifici che non sono stati aggiornati. IE6 è ciò che devono usare.Triste ma vero :( –

0

Sostituire la regola che hai con il seguente:

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%); 

per browser meno recenti .. se hai definito css in alcuni framewokrk.css come select2.css in IE9 background-image: -webkit-gradient ecc. e lo vuoi tramite un altro .cs s riscrivere con "background-image: none! important" non funziona. Ho usato lo stesso colore per sfumare il colore come il colore di sfondo della pagina.