2011-09-27 27 views
29

का उपयोग कर रहा सीएसएस attrubutes उपयोग कर रहा हूँ पारदर्शी बनाने के लिए:कैसे पृष्ठभूमि DIV केवल सीएसएस

filter: alpha(opacity=90);  

अस्पष्टता: .9;

डीआईवी पारदर्शी बनाने के लिए, लेकिन जब मैं इस डीआईवी के अंदर एक और डीआईवी जोड़ता हूं तो यह इसे पारदर्शी बनाता है।

मैं बाहरी (पृष्ठभूमि) DIV केवल पारदर्शी बनाना चाहता हूं। कैसे ?

+0

संक्षिप्त उत्तर आप कर सकते हैं नहीं है। पारदर्शी div के बाहर अन्य div रखें। –

+2

संबंधित प्रश्न: http://stackoverflow.com/questions/806000/css-semi-transparent-background-but-not-text –

उत्तर

72

फिडल: http://jsfiddle.net/uenrX/1/

बाहरी DIV की अस्पष्टता संपत्ति भीतरी DIV द्वारा पूर्ववत नहीं किया जा सकता है।

बाहरी div: आप पारदर्शिता हासिल करना चाहते हैं, तो rgba या hsla का उपयोग

background-color: rgba(255, 255, 255, 0.9); /* Color white with alpha 0.9*/ 

इनर div:

background-color: #FFF; /* Background white, to override the background propery*/ 

संपादित
क्योंकि आपको अपने प्रश्न का filter:alpha(opacity=90) जोड़ दिया है , मुझे लगता है कि आप IE (पुराने संस्करणों) के लिए एक समाधान समाधान भी चाहते हैं। यह (आईई के नवीनतम संस्करण के लिए -ms- उपसर्ग) काम करना चाहिए:

/*Padded for readability, you can write the following at one line:*/ 
filter: progid:DXImageTransform.Microsoft.Gradient(
    GradientType=1, 
    startColorStr="#E6FFFFFF", 
    endColorStr="#E6FFFFFF"); 

/*Similarly: */ 
filter: progid:DXImageTransform.Microsoft.Gradient(
    GradientType=1, 
    startColorStr="#E6FFFFFF", 
    endColorStr="#E6FFFFFF"); 

मैं ढाल फिल्टर का उपयोग किया है, एक ही start- और end-color के साथ शुरू है, ताकि पृष्ठभूमि एक ढाल प्रदर्शित नहीं करता है, लेकिन एक फ्लैट रंग रंग प्रारूप एआरजीबी हेक्स प्रारूप में है। मैं पूर्ण अल्फा स मान के सापेक्ष अस्पष्टता मूल्यों कन्वर्ट करने के लिए एक जावास्क्रिप्ट टुकड़ा लिखा है:

var opacity = .9; 
var A_ofARGB = Math.round(opacity * 255).toString(16); 
if(A_ofARGB.length == 1) A_ofARGB = "0"+a_ofARGB; 
else if(!A_ofARGB.length) A_ofARGB = "00"; 
alert(A_ofARGB); 
0

यह संभव नहीं है, अस्पष्टता बच्चे नोड्स द्वारा विरासत में मिली है और आप इस से बचने नहीं कर सकते। केवल माता-पिता पारदर्शी होने के लिए, आपको तत्वों की स्थिति (पूर्ण) और उनके जेड-इंडेक्स

0

के साथ खेलना होगा, मुझे नहीं पता कि यह बदल गया है या नहीं। लेकिन मेरे अनुभव से। घोंसले के तत्वों के पास पितरों के बराबर अधिकतम अस्पष्टता होती है।

कौन सा मतलब है:

<div id="a"> 
<div id="b"> 
</div></div> 

Div#a has 0.6 opacity 
div#b has 1 opacity 

है # ब्लॉक #a के भीतर है तो यह अधिकतम अस्पष्टता है हमेशा 0.6

# ब्लॉक 0.5 अस्पष्टता होता है। बदले में यह 0.6 * 0.5 == 0.3 अस्पष्टता

10

मुझे एक ही समस्या थी, यह वह समाधान है जिसके साथ मैं आया था, जो कि बहुत आसान है!

थोड़ा 1px x 1px पारदर्शी छवि बनाएं और इसे एक .png फ़ाइल के रूप में सहेजें।

background:transparent url('/images/trans-bg.png') repeat center top; 

अपने पारदर्शी छवि के लिए फ़ाइल पथ को बदलने के लिए याद रखें:

अपने DIV के लिए सीएसएस में, इस कोड का उपयोग करें।

मुझे लगता है कि यह समाधान सभी ब्राउज़रों में काम करता है, शायद आईई 6 को छोड़कर, लेकिन मैंने परीक्षण नहीं किया है।

0
.modalBackground 
    { 

     filter: alpha(opacity=80); 
     opacity: 0.8; 
     z-index: 10000; 
    } 
+0

यह वांछित प्रभाव प्राप्त नहीं करेगा, और जेड इंडेक्स का अंधाधुंध उपयोग शायद एक नहीं है अच्छा विचार या तो - इस उपयोग का जिक्र नहीं करने के लिए शायद कोई प्रभाव नहीं पड़ेगा। –

+0

यदि जेड-इंडेक्स की आवश्यकता नहीं है तो ज़ेड-इंडेक्स विशेषता का उपयोग न करें .. बस –

+0

के बाकी कोड का उपयोग करें, तो केवल प्रभाव यह है कि मूल्य पूछने वाले की स्थिति से थोड़ा बदल जाते हैं, लेकिन पूछताछकर्ता आंतरिक तत्वों को अपारदर्शी दिखाना चाहता है । यह हासिल नहीं करेगा। –

0
background-image:url('image/img2.jpg'); 
background-repeat:repeat-x; 

उपयोग आंतरिक छवि के लिए कुछ छवि और इस का उपयोग करें।

1

बस उस div के लिए पृष्ठभूमि रंग शामिल न करें और यह पारदर्शी होगा।

+0

मुझे लगता है कि ओप पारदर्शी के बारे में बात कर रहा है। –

-1
<div id="divmobile" style="position: fixed; background-color: transparent; 
    z-index: 1; bottom:5%; right: 0px; width: 50px; text-align:center;" class="div-mobile"> 

+2

आपका उत्तर सूचनाओं पर थोड़ा सा छोटा है ... मैं आपको [दौरा] लेने, [उत्तर] पढ़ने और फिर अपनी पोस्ट संपादित करने का सुझाव देता हूं :) –

+1

जबकि उत्तर हमेशा सराहना की जाती है, इस सवाल से पूछा गया था * * साल ** पहले, और पहले से ही एक स्वीकार्य समाधान था। कृपया उत्तर देने के लिए शीर्ष पर 'बंपिंग' प्रश्नों से बचने का प्रयास करें, जब तक कि प्रश्न को हल नहीं किया गया हो, या आपको समस्या के लिए एक नया और बेहतर समाधान मिला। यह भी समझाने में मदद के लिए कुछ [** अपने कोड के आसपास संदर्भ ** **] (https://meta.stackexchange.com/questions/114762) प्रदान करना भी याद रखें। अपने उत्तरों को गिनने के तरीकों के बारे में कुछ सुझावों के लिए [** महान उत्तरों ** लिखना) [http://stackoverflow.com/help/how-to-answer) पर दस्तावेज़ देखें। –

संबंधित मुद्दे