ऊंचाई: 100% या न्यूनतम ऊंचाई: HTML और शरीर के तत्वों के लिए 100%?


82

लेआउट डिजाइन करते समय मैंने सेट किया html, body तत्वों ' heightको 100%तो क्या किया जाना चाहिए लेकिन कुछ मामलों में, इस विफल रहता है,?

html, body {
   height: 100%;
}

या

html, body {
   min-height: 100%;
}

खैर, यह राय आधारित नहीं है क्योंकि प्रत्येक विधि की अपनी खामियां हैं, इसलिए क्या करने के लिए अनुशंसित तरीका है और क्यों?

जवाबों:


193

यदि आप पृष्ठभूमि की छवियों को लागू करने का प्रयास कर रहे हैं htmlऔर bodyयह पूरी ब्राउज़र विंडो को भरने के लिए है, न तो। इसके बजाय इसका उपयोग करें:

html {
   height: 100%;
}

body {
   min-height: 100%;
}

मेरा तर्क यहां दिया गया है (जहां मैं समग्र रूप से समझाता हूं कि इस तरीके से पृष्ठभूमि कैसे लागू की जाए):

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

पहला तरीका, height: 100%दोनों का उपयोग करते हुए, bodyव्यूपोर्ट ऊँचाई से आगे बढ़ने के बाद इसकी सामग्री के विस्तार से रोकता है। तकनीकी रूप से यह सामग्री को स्क्रॉल करने से नहीं रोकता है, लेकिन इसका कारण बनता हैbody तह के नीचे एक अंतर छोड़ने का है, जो आमतौर पर अवांछनीय है।

min-height: 100%दोनों का उपयोग करने का दूसरा तरीका, bodyपूर्ण ऊंचाई तक विस्तार का कारण नहीं बनता है htmlक्योंकि min-heightएक प्रतिशत के साथ काम नहीं करता है bodyजब तक htmlकि एक स्पष्ट न होheight

संपूर्णता की खातिर, CSS2.1 की धारा 10 में सभी विवरण शामिल हैं, लेकिन यह एक अत्यंत जटिल पाठ है इसलिए आप इसे छोड़ सकते हैं यदि आप किसी भी चीज़ में रुचि नहीं रखते हैं जो मैंने यहाँ समझाया है।


4
यह वही है जो मुझे यह सबसे पसंद है :) height: 100% is taken from the viewport, then applied to body as a minimum to allow for scrolling of contentआसान मटर का घोल ... धन्यवाद //
श्री एलियन

मुझे आश्चर्य है कि, फिर स्क्रॉल बार जादुई रूप से कैसे दिखाई देता है? htmlतत्व है overflow:visibleतो मुझे लगता है स्क्रॉल बार ब्राउज़र के व्यवहार की वजह से दिखाई दस्तावेज़ के पूरे सामान्य प्रवाह प्रदर्शित करने के लिए अनुमति देने के लिए, डिफ़ॉल्ट रूप से।
फाबेरिको मट्टे जूल

@ फैबेरिसो मैट: यह overflow: autoव्यूपोर्ट में अनुवाद करता है, जहां स्क्रॉलबार आते हैं। : यह धारा 11 में शामिल किया गया है w3.org/TR/CSS21/visufx.html
BoltClock

10
@BoltClock किसी भी विचार कैसे बच्चे को यहाँ शरीर का 100% प्राप्त करने के लिए ? हालांकि यह काम करता है
श्री एलियन

1
बॉक्स-आकार: बॉर्डर-बॉक्स मार्जिन को प्रभावित नहीं करता है। पैडिंग, हाँ, लेकिन यह व्यक्तिगत प्राथमिकता के लिए नीचे है।
BoltClock

17

आप व्यूपोर्ट ऊँचाई ( vh) इकाई का उपयोग कर सकते हैं :

body {
    min-height: 100vh;
}

यह स्क्रीन के सापेक्ष है, माता-पिता की ऊँचाई के लिए नहीं, इसलिए आपको html ऊँचाई की आवश्यकता नहीं है: 100%।


हालांकि यह क्या अतिरिक्त लाभ प्रदान करता है।
xji

कोई अतिरिक्त लाभ नहीं, समस्या को हल करने का सिर्फ एक और तरीका।
दमजन पाव्लिका

मोबाइल इस बात को कैसे समझे
खबरदार

बस इस बात का ध्यान रखें कि कोई भी ब्राउज़र इस इकाइयों का समर्थन नहीं करता है ... पहले ब्राउज़र संगतता की जांच करें: caniuse.com/#feat=viewport-units
dBlaze
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.