Comment supprimer l'image d'arrière-plan en CSS?


195

J'ai une règle générale qui donne à tous les DIV une image de fond.
J'ai un div (avec id = 'a') dont je ne veux pas qu'il ait l'image d'arrière-plan.
Quelle règle css dois-je lui donner?

Réponses:


349

Essayer:

div#a {
    background-image:none
}


3
"Éviter les sélecteurs d'ancêtres inutiles est utile pour des raisons de performances." Pas vraiment un problème lorsque vous n'êtes pas Google.
Davor du

Recommandation du W3C sur les sélecteurs CSS 3> Calcul de la spécificité d'un sélecteur w3.org/TR/css3-selectors/#specificity
TarranJones


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

Bien que "! Important" ne soit pas nécessaire, car "div # a" a une spécificité plus élevée que simplement "div".


La partie! Important n'est pas nécessaire car la déclaration avec #a est plus précise qu'une déclaration de div et donc cette règle sera appliquée à la place de la règle générale de div.
Ruud

2
J'ai trouvé! Important d'être nécessaire dans Chrome
dlchambers

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

J'utilise une image d'espacement transparente en plus de la règle pour supprimer l'image d'arrière-plan car IE6 semble ignorer le background-image: nonemême s'il est marqué !important.


6
Qui se soucie d'IE6 ces jours-ci.
Rob W

-1 Votre réponse est incorrecte. J'ai commencé IE6, et le background-image:none;(avec ot sans !important) fonctionne parfaitement.
Rob W

8
En fait, je m'en soucie - l'un de mes clients a un environnement réseau isolé avec un logiciel spécifique qui n'a pas été mis à jour. IE6 est ce qu'ils doivent utiliser. Triste mais vrai :(
Russ Clarke

5
Avoir un vote favorable pour atténuer le vote négatif de Rob W. C'était assez impoli de sa part de voter pour une rétrocompatibilité qui n'est même pas un hack, qu'il puisse le reproduire ou non
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%);

pour les navigateurs plus anciens .. si vous avez défini css dans certains framewokrk.css comme select2.css dans IE9 background-image: -webkit-gradient etc. et que vous le voulez via une autre réécriture .css avec "background-image: none! important" ne fonctionne pas. J'ai utilisé la même couleur pour colorer le dégradé comme la couleur d'arrière-plan de la page.


2

Quand background-image: none !important;n'ont aucun effet. Vous pouvez utiliser:

background-size: 0 !important;

1

Si votre règle div est juste div {...}, alors #a {...}sera suffisante. Si c'est plus compliqué, vous avez besoin d'un sélecteur "plus spécifique", tel que défini par la spécification CSS sur la spécificité . (#a étant plus spécifique que div n'est qu'un seul aspect de l'algorithme.)


0

Cela ne fonctionne pas:

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

Peut avoir des problèmes sur les anciens navigateurs ...


0

Remplacez la règle que vous avez par la suivante:

div:not(#a) { // add your bg image here //}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.