Wie entferne ich Hintergrundbilder in CSS?

192

Ich habe eine allgemeine Regel, die allen DIVs ein Hintergrundbild gibt.
Ich habe ein Div (mit id = 'a'), das nicht das Hintergrundbild haben soll.
Welche CSS-Regel muss ich geben?

Itay Moav-Malimovka
quelle

Antworten:

34
div#a {
    background-image: none;
}
Ruud
quelle
30
div#a {
  background-image: none !important;
}

Obwohl das "! Wichtig" möglicherweise nicht notwendig ist, weil "div # a" eine höhere Spezifität hat als nur "div".

M4N
quelle
Der! Wichtige Teil ist nicht erforderlich, da die Deklaration mit #a genauer ist als eine Deklaration von div und daher diese Regel anstelle der allgemeinen Div-Regel angewendet wird.
Ruud
1
Ich fand! Wichtig in Chrome notwendig
dlchambers
17
div#a {
  background-image: url('../images/spacer.png');
  background-image: none !important;
}

Ich verwende zusätzlich zur Regel ein transparentes Abstandsbild, um das Hintergrundbild zu entfernen, da IE6 das zu ignorieren scheint, background-image: noneobwohl es markiert ist !important.

Matthew Pearson
quelle
6
Wen interessiert IE6 heutzutage?
Rob W
-1 Ihre Antwort ist falsch. Ich habe IE6 gestartet und das background-image:none;(mit oder ohne !important) funktioniert einwandfrei.
Rob W
8
Eigentlich ist es mir wichtig - einer meiner Kunden hat eine isolierte Netzwerkumgebung mit einer bestimmten Software, die nicht aktualisiert wurde. IE6 ist das, was sie verwenden müssen. Traurig aber wahr :(
Russ Clarke
5
Haben Sie eine positive Bewertung, um die negative Bewertung von Rob W zu mildern. Es war ziemlich unhöflich von ihm, nur aus Gründen der Abwärtskompatibilität abzustimmen, die nicht einmal ein Hack ist, unabhängig davon, ob er sie reproduzieren konnte oder nicht
Kavi Siegel
2
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%);

für ältere Browser .. wenn Sie CSS in einigen framewokrk.css wie select2.css im IE9-Hintergrundbild definiert haben: -webkit-gradient usw. und Sie möchten es über eine andere .css-Umschreibung mit "Hintergrundbild: keine! wichtig" funktioniert nicht. Ich habe dieselbe Farbe verwendet, um Farbverläufe wie die Hintergrundfarbe der Seite zu färben.

buTs
quelle
1

Wenn Ihre Div-Regel gerecht ist div {...}, ist #a {...}dies ausreichend. Wenn es komplizierter ist, benötigen Sie einen "spezifischeren" Selektor, wie in der CSS-Spezifikation zur Spezifität definiert . (#a spezifischer als div ist nur ein Aspekt des Algorithmus.)

Nur verliebt
quelle
1

Wann background-image: none !important;haben keine Wirkung. Sie können verwenden:

background-size: 0 !important;
Michał Szymański
quelle
0

Funktioniert das nicht:

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

Könnte Probleme mit älteren Browsern haben ...

Ben Hall
quelle
0

Ersetzen Sie die Regel durch folgende:

div:not(#a) { // add your bg image here //}
circusdei
quelle