2012-11-02 14 views
20

मुझे समझ में नहीं आता क्यों, लेकिन एक इंसेट बॉक्स छाया मेरी सामग्री के नीचे है।सामग्री के नीचे बॉक्स-छाया डालें

यहाँ एक उदाहरण है:

div { 
    box-shadow:inset 0 0 10px black; 
    height:300px; 
    color:red; 
} 


​<div> 
    a 
</div>​ 

http://jsfiddle.net/MAckM/

तुम देखो a बॉक्स छाया के शीर्ष पर है।

a के शीर्ष पर होने के लिए बॉक्स छाया कैसे प्राप्त कर सकता हूं?

+0

मैंने पहले से ही इस olution का उपयोग किया है, लेकिन अतिरिक्त रूप से सहायक चीज इस div की z-index है: पहले। पूर्ण सामग्री को कवर करने में आपको परेशानी होने पर इसका उपयोग करना न भूलें। –

उत्तर

23

आपको पूर्ण स्थिति और ऊंचाई और 100% की चौड़ाई के साथ div के अंदर एक नया तत्व बनाने की आवश्यकता है, फिर उस तत्व को बॉक्स छाया दें।

HTML:

<div> 
    <div></div> 
    a 
</div>​ 

सीएसएस:

div { 
    height:300px; 
    color:red; 
    position:relative; 
} 

div div { 
    box-shadow:inset 0 0 10px black; 
    position:absolute; 
    top:0; 
    left:0; 
    width:100%; 
    height:100%; 
}​ 

यहाँ एक JSFiddle है।

संपादित करें:

वैकल्पिक रूप से, आप एक छद्म तत्व का उपयोग कर सकते हैं:

HTML:

<div> 
    a 
</div>​ 

सीएसएस:

div { 
    height:300px; 
    color:red; 
    position:relative; 
} 

div:before { 
    content:''; 
    display:block; 
    box-shadow:inset 0 0 10px black; 
    position:absolute; 
    top:0; 
    left:0; 
    width:100%; 
    height:100%; 
}​ 

JSFiddle

+0

आधुनिक ब्राउज़रों (सहित आईई 9 +) में, उत्पन्न सामग्री (': पहले ',': after') वास्तविक तत्व के बजाय उपयोग किया जा सकता है। (आईई 8 भी जेनरेट की गई सामग्री का समर्थन करता है, लेकिन जेनरेट की गई सामग्री को वास्तविक सामग्री से ऊपर रखने के लिए एक बग है, और निश्चित रूप से सीएसएस बॉक्स छाया का समर्थन नहीं करता है।) –

+0

@MaratTanalin बिल्कुल सही। और यह भी एक और अधिक सुंदर समाधान है। उत्तर अपडेट किया गया। – fncombo

+0

या तो जवाब मेरे द्वारा ठीक है, लेकिन मुझे एक समस्या है। जब मेरे पास केंद्रीय 'div' के अंदर एक और' div' होता है तो छाया तत्व या छद्म वर्ग आंतरिक 'div' के शीर्ष पर रहता है। यदि मैं आंतरिक div में z-index जोड़ता हूं, तो यह बॉक्स-छाया के शीर्ष पर जाता है। इस डेमो में लिंक पर क्लिक करने का प्रयास करें: http://jsfiddle.net/MAckM/5/ – henryaaron

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