मैं उपरिशायी तत्व के स्थान पर एक छद्म तत्व का उपयोग करने का सुझाव दूंगा। क्योंकि छद्म तत्व संलग्न imgतत्वों पर नहीं जोड़े जा सकते हैं, फिर भी आपको लपेटने की आवश्यकता होगीimg तत्व ।
यहाँ लाइव उदाहरण - पाठ के साथ उदाहरण
<div class="image">
<img src="http://i.stack.imgur.com/Sjsbh.jpg" alt="" />
</div>
सीएसएस के लिए, तत्व पर वैकल्पिक आयाम सेट करें .image, और अपेक्षाकृत स्थिति। यदि आप एक उत्तरदायी छवि के लिए लक्ष्य कर रहे हैं, तो बस आयामों को छोड़ दें और यह अभी भी काम करेगा (उदाहरण) । यह केवल ध्यान देने योग्य है कि आयाम मूल तत्व पर होने चाहिए क्योंकि imgतत्व स्वयं के विपरीत है, देखें ।
.image {
position: relative;
width: 400px;
height: 400px;
}
बच्चे के imgतत्व 100%को माता-पिता की एक चौड़ाई दें और vertical-align:topडिफ़ॉल्ट आधारभूत संरेखण मुद्दों को ठीक करने के लिए जोड़ें ।
.image img {
width: 100%;
vertical-align: top;
}
छद्म तत्व के लिए के रूप में, एक सामग्री मूल्य सेट करें और .imageतत्व के सापेक्ष बिल्कुल स्थिति । एक चौड़ाई / ऊंचाई 100%यह सुनिश्चित करेगी कि यह अलग-अलग imgआयामों के साथ काम करे । यदि आप तत्व को परिवर्तित करना चाहते हैं, तो एक अपारदर्शिता सेट करें 0और संक्रमण गुण / मान जोड़ें।
.image:after {
content: '\A';
position: absolute;
width: 100%; height:100%;
top:0; left:0;
background:rgba(0,0,0,0.6);
opacity: 0;
transition: all 1s;
-webkit-transition: all 1s;
}
1संक्रमण को सुविधाजनक बनाने के लिए छद्म तत्व पर मँडरा करते समय एक अपारदर्शिता का उपयोग करें :
.image:hover:after {
opacity: 1;
}
END परिणाम यहां देखें
यदि आप होवर पर टेक्स्ट जोड़ना चाहते हैं:
सरलतम दृष्टिकोण के लिए, केवल पाठ को छद्म तत्व के contentमान के रूप में जोड़ें :
यहाँ उदाहरण दें
.image:after {
content: 'Here is some text..';
color: #fff;
/* Other styling.. */
}
कि ज्यादातर मामलों में काम करना चाहिए ; हालाँकि, यदि आपके पास एक से अधिक imgतत्व हैं, तो हो सकता है कि आप एक ही पाठ को होवर पर प्रदर्शित न करना चाहें। इसलिए आप पाठ को एक data-*विशेषता में सेट कर सकते हैं और इसलिए प्रत्येक imgतत्व के लिए अद्वितीय पाठ है ।
यहाँ उदाहरण दें
.image:after {
content: attr(data-content);
color: #fff;
}
एक साथ contentका मूल्य attr(data-content), छद्म तत्व से पाठ को जोड़ता है .imageतत्व की data-contentविशेषता:
<div data-content="Text added on hover" class="image">
<img src="http://i.stack.imgur.com/Sjsbh.jpg" alt="" />
</div>
आप कुछ स्टाइल जोड़ सकते हैं और कुछ इस तरह से कर सकते हैं:
यहाँ उदाहरण दें
उपरोक्त उदाहरण में, :afterछद्म तत्व काले उपरिशायी के रूप में कार्य करता है, जबकि :beforeछद्म तत्व कैप्शन / पाठ है। चूंकि तत्व एक-दूसरे से स्वतंत्र हैं, इसलिए आप अधिक इष्टतम स्थिति के लिए अलग स्टाइल का उपयोग कर सकते हैं।
.image:after, .image:before {
position: absolute;
opacity: 0;
transition: all 0.5s;
-webkit-transition: all 0.5s;
}
.image:after {
content: '\A';
width: 100%; height:100%;
top: 0; left:0;
background:rgba(0,0,0,0.6);
}
.image:before {
content: attr(data-content);
width: 100%;
color: #fff;
z-index: 1;
bottom: 0;
padding: 4px 10px;
text-align: center;
background: #f00;
box-sizing: border-box;
-moz-box-sizing:border-box;
}
.image:hover:after, .image:hover:before {
opacity: 1;
}