मैं सीएसएस में पृष्ठभूमि-छवि कैसे निकालूं?


192

मेरे पास एक सामान्य नियम है जो सभी DIV को एक पृष्ठभूमि छवि देता है।
मेरे पास एक div (id = 'a') है जो मैं नहीं चाहता कि यह बैकग्राउंड इमेज हो।
मुझे क्या सीएसएस नियम देना होगा?

जवाबों:


342

प्रयत्न:

div#a {
    background-image:none
}


3
"अनावश्यक पूर्वज चयनकर्ताओं से बचना प्रदर्शन के कारणों के लिए उपयोगी है।" जब आप Google नहीं हैं तो वास्तव में कोई समस्या नहीं है।
डावोर

CSS 3 चयनकर्ताओं पर W3C की सिफारिश> एक चयनकर्ता की विशिष्टता की गणना w3.org/TR/css3-selectors/#specificity
TarranJones


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

यद्यपि "महत्वपूर्ण" आवश्यक नहीं हो सकता है, क्योंकि "div #" में "div" की तुलना में अधिक विशिष्टता है।


महत्वपूर्ण भाग आवश्यक नहीं है क्योंकि # ए के साथ घोषणा डिव की घोषणा की तुलना में अधिक सटीक है और इसलिए यह नियम सामान्य div नियम के बजाय लागू किया जाएगा।
रुद सिप

1
मैंने पाया कि Chrome में आवश्यक होना महत्वपूर्ण है
dlchambers

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

मैं पृष्ठभूमि छवि को हटाने के लिए नियम के अलावा एक पारदर्शी स्पेसर छवि का उपयोग करता हूं क्योंकि IE6 background-image: noneचिह्नित होने के बावजूद भी इसे अनदेखा करता है !important


6
जो इन दिनों IE6 की परवाह करता है।
रोब डब्ल्यू

-1 आपका जवाब गलत है। मैंने IE6 शुरू किया, और background-image:none;(बिना ओ.टी. के साथ !important) त्रुटिपूर्ण रूप से काम करता है।
रॉब डब्ल्यू

8
वास्तव में, मुझे परवाह है - मेरे ग्राहकों में से एक के पास कुछ विशिष्ट सॉफ़्टवेयर के साथ एक अलग नेटवर्क वातावरण है जिसे अपडेट नहीं किया गया है। IE6 वे क्या उपयोग करना है। दु: खद लेकिन सच :(
रास क्लार्क

5
रोब W के डाउनवोट को कम करने के लिए एक अपवोट है। यह उसके लिए काफी अशिष्ट था कि सिर्फ पीछे की अनुकूलता के लिए वह भी एक हैक नहीं है, भले ही वह इसे पुन: पेश कर सके या नहीं
कवि साइगल

8

चूंकि css3 में कोई भी कई पृष्ठभूमि चित्र सेट कर सकता है, "कोई नहीं" केवल एक नई परत बनाएगा और कुछ भी नहीं छिपाएगा।

http://www.css3.info/preview/multiple-backgrounds/ http://www.w3.org/TR/css3-background/#backgrounds

मुझे अभी तक कोई समाधान नहीं मिला है ...


मेरा मानना ​​है कि "पृष्ठभूमि: कोई नहीं;" ओवरराइड करेंगे
परिक्रमा

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

पुराने ब्राउज़रों के लिए .. अगर आपने IE9 बैकग्राउंड-इमेज: -webkit-gradient आदि में कुछ framewokrk.css जैसे css को परिभाषित किया है और आप इसे दूसरे के माध्यम से चाहते हैं। कोई भी "बैकग्राउंड-इमेज:" महत्वपूर्ण नहीं है! काम नहीं करता। मैंने पेज बैकग्राउंड कलर की तरह ही ग्रैडिएंट टू ग्रेड ग्रेडिएंट का इस्तेमाल किया।


1

अगर आपका div rule सिर्फ है div {...}, तो #a {...}पर्याप्त होगा। यदि यह अधिक जटिल है, तो आपको "अधिक विशिष्ट" चयनकर्ता की आवश्यकता है, जैसा कि सीएसएस विनिर्देश द्वारा विशिष्टता पर परिभाषित किया गया है । (# div से अधिक विशिष्ट होना एल्गोरिथ्म में सिर्फ एक पहलू है।)



0

यह काम नहीं करता है:

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

पुराने ब्राउज़रों पर समस्या हो सकती है ...


0

नियम को निम्नलिखित के साथ बदलें:

div:not(#a) { // add your bg image here //}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.