नहीं, यह नहीं किया जा सकता है क्योंकि opacity
इसकी सामग्री सहित पूरे तत्व को प्रभावित करता है और इस व्यवहार को बदलने का कोई तरीका नहीं है। आप निम्नलिखित दो तरीकों से इस पर काम कर सकते हैं।
माध्यमिक div
div
पृष्ठभूमि को पकड़ने के लिए कंटेनर में एक और तत्व जोड़ें । यह सबसे क्रॉस-ब्राउज़र फ्रेंडली तरीका है और IE6 पर भी काम करेगा।
एचटीएमएल
<div class="myDiv">
<div class="bg"></div>
Hi there
</div>
सीएसएस
.myDiv {
position: relative;
z-index: 1;
}
.myDiv .bg {
position: absolute;
z-index: -1;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: url(test.jpg) center center;
opacity: .4;
width: 100%;
height: 100%;
}
देखें jsFiddle पर परीक्षण मामला
: पहले और :: छद्म तत्व से पहले
एक अन्य चाल सीएसएस 2.1 :before
या सीएसएस 3 ::before
छद्म तत्वों का उपयोग करना है। :before
छद्म तत्व IE में संस्करण 8 से समर्थित है, जबकि ::before
छद्म तत्व का समर्थन नहीं किया गया है। यह उम्मीद है कि संस्करण 10 में सुधार किया जाएगा।
एचटीएमएल
<div class="myDiv">
Hi there
</div>
सीएसएस
.myDiv {
position: relative;
z-index: 1;
}
.myDiv:before {
content: "";
position: absolute;
z-index: -1;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: url(test.jpg) center center;
opacity: .4;
}
अतिरिक्त नोट्स
z-index
आप के व्यवहार के कारण कंटेनर के लिए एक जेड-इंडेक्स निर्धारित करना होगा और साथ ही z-index
पृष्ठभूमि की छवि के लिए नकारात्मक भी होगा ।
परीक्षण के मामलों
देखें jsFiddle पर परीक्षण मामला: