2015-05-18 4 views
5

मैं एक कंटेनर को पूरे पृष्ठ (या व्यूपोर्ट, जो भी बड़ा हो) भरने की कोशिश कर रहा हूं, लेकिन कुछ परेशानी में भाग गया। मैं इस पोस्ट से सिफारिशों का उपयोग कर रहा हूं: https://stackoverflow.com/a/17555766, <html> और <body> को 100% ऊंचाई पर सेट करने के लिए।कंटेनर ऊंचाई विरासत में क्यों नहीं है, जब यह न्यूनतम ऊंचाई के साथ आकार में है?

लेकिन मैंने देखा है कि .Content div केवल व्यूपोर्ट भर जाता है जब <body> ऊंचाई height: 100% साथ सेट कर दिया जाता है, लेकिन min-height: 100% के साथ नहीं। ऐसा क्यों है? .Content<body> की ऊंचाई क्यों उठाता है जब यह min-height के साथ सेट होता है? क्या इसके लिए कोई फिक्स है (पूर्ण स्थिति या निश्चित ऊंचाइयों के बिना)?

एचटीएमएल

<html> 
    <body> 
    <div class="Content">Content</div> 
    </body> 
</html> 

सीएसएस

* { 
    margin: 0; 
    padding: 0; 
} 

html { 
    height: 100%; 
} 

body { 
    /* does not work for .Content: */ 
    min-height: 100%; 
    /* does work for .Content: */ 
    /* height: 100%; */ 
    background: blue; 
} 

.Content { 
    background: red; 
    min-height: 100%; 
} 

codepen: http://codepen.io/anon/pen/mJEMVX

पी.एस .: जब <body> ऊंचाई height: 100% साथ सेट कर दिया जाता है, दोनों min-height: 100% और height: 100% काम .Content के लिए अपेक्षा के अनुरूप।

+2

मुझे लगता है कि अंतर्निहित कारण शरीर की ऊंचाई और सामग्री की ऊंचाई के बीच परिपत्र निर्भरता है। कल्पना करें कि '.content' के बाद एक और तत्व है। अब, यदि सामग्री 100% तक फैली हुई है, तो शरीर को भी विस्तार करना चाहिए, जिससे सामग्री आगे बढ़ेगी। संभावित रूप से कारण यह है कि स्पेक प्रतिशत की ऊंचाई को परिभाषित करता है जिस तरह से यह इस परिपत्र निर्भरता को तोड़ना है। –

+0

@Alexey Lebedev: यह सही है। – BoltClock

उत्तर

6

प्रतिशत ऊंचाई माता-पिता तत्व की गणना height संपत्ति का संदर्भित करती है। spec देखें। body तत्व पर लिंक किए गए प्रश्न के उत्तर के अनुसार min-height: 100% पर सेट करते समय, height संपत्ति auto के डिफ़ॉल्ट मान पर छूटी नहीं छोड़ी गई है। min-height संपत्ति height संपत्ति के गणना मूल्य को प्रभावित नहीं करती है।

इस कारण, min-height: 100% आपके तत्व पर कोई अभिभावक ऊंचाई नहीं है, और इसलिए यह काम नहीं करेगा। एक बार जब आप body तत्व पर height: 100% सेट करते हैं, तो आपका तत्व इस ऊंचाई को अपनी प्रतिशत ऊंचाई गणना के लिए संदर्भित करने में सक्षम है।

यह कैसे ठीक करें इस बात पर निर्भर करता है कि आप किस प्रकार के लेआउट को प्राप्त करने का प्रयास कर रहे हैं। body तत्व पर min-height: 100% को सेट करने का एकमात्र उद्देश्य यह है कि जब सामग्री की ऊंचाई व्यूपोर्ट से अधिक हो जाती है तो स्क्रॉलबार के परिणामस्वरूप यह विस्तार करने की अनुमति मिलती है। यदि आपकी सामग्री केवल व्यूपोर्ट की ऊंचाई ही होगी, या आप body स्क्रॉलबार उत्पन्न करने के लिए नहीं चाहते हैं, तो body पर min-height: 100% को बदलने के समान आसान है।

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