नहीं, यह नहीं किया जा सकता है क्योंकि 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 पर परीक्षण मामला: