मेक बॉडी में ब्राउज़र की ऊंचाई 100% है


844

मैं चाहता हूं कि बॉडी में ब्राउज़र की ऊंचाई 100% हो। क्या मैं CSS का उपयोग कर सकता हूं?

मैंने सेटिंग की कोशिश की height: 100%, लेकिन यह काम नहीं करता है।

मैं संपूर्ण ब्राउज़र विंडो को भरने के लिए एक पृष्ठ के लिए एक पृष्ठभूमि रंग सेट करना चाहता हूं, लेकिन यदि पृष्ठ में बहुत कम सामग्री है तो मुझे सबसे नीचे एक बदसूरत सफेद पट्टी मिलती है।


जवाबों:


1089

Html एलिमेंट की ऊँचाई को 100% करने की कोशिश करें।

html, 
body {
    height: 100%;
}

शरीर अपने माता-पिता (एचटीएमएल) को गतिशील संपत्ति को कैसे स्केल करता है, इस लिए दिखता है, इसलिए एचटीएमएल तत्व को अपनी ऊंचाई निर्धारित करनी होगी।

हालांकि शरीर की सामग्री को संभवतः गतिशील रूप से बदलने की आवश्यकता होगी। न्यूनतम-ऊंचाई को 100% पर सेट करना इस लक्ष्य को पूरा करेगा।

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

6
धन्यवाद, यह छोटे पन्नों पर सफेद पट्टी को हटाने के लिए लगता है, लेकिन अब उन पृष्ठों पर जो ब्राउज़र विंडो की ऊंचाई से अधिक है, मुझे सबसे नीचे एक 20px सफेद पट्टी मिलती है: |
बॉडीफॉइट जुएल

48
ठीक है मुझे पता चला! यह काम करता है अगर मैं html, बॉडी {min-height: 100%;} जोड़ें: D
bodyofheat

12
नोट: यदि आप body {min-height}संस्करण का उपयोग करते हैं तो आप .body-child{height: 100%}ट्रिक का उपयोग नहीं कर सकते ।
सलमान एक

14
सबसे अच्छा जवाब CSS3 के साथ है, vh-> body { height: 100vh }- - यहाँ उत्तर की जांच करें stackoverflow.com/a/25829844/2680216
Adriano Resende

2
@bFunc मेरे पास यह क्रोम मुद्दा है। html {ऊंचाई: 100%;} शरीर {ऊंचाई: ऑटो} काम करते हैं।
GBMan

217

htmlऔर bodyतत्व की ऊँचाई दोनों को सेट करने के विकल्प के रूप में 100%, आप व्यूपोर्ट-प्रतिशत लंबाई का भी उपयोग कर सकते हैं।

5.1.2। व्यूपोर्ट-प्रतिशत लंबाई: 'vw', 'vh', 'vmin', 'vmax' इकाइयाँ

व्यूपोर्ट-प्रतिशत लंबाई प्रारंभिक ब्लॉक वाले आकार के सापेक्ष है। जब प्रारंभिक युक्त ब्लॉक की ऊंचाई या चौड़ाई को बदल दिया जाता है, तो उन्हें तदनुसार स्केल किया जाता है।

इस उदाहरण में, आप मान का उपयोग कर सकते हैं 100vh- जो व्यूपोर्ट की ऊंचाई है।

यहाँ उदाहरण है

body {
  height: 100vh;
  padding: 0;
}
body {
  min-height: 100vh;
  padding: 0;
}

यह सबसे आधुनिक ब्राउज़रों में समर्थित है - समर्थन यहां पाया जा सकता है


4
इस तथ्य के अलावा कि यह मृत सरल है, यह भी अच्छा है कि हम नई प्रथाओं को अपनाएं।
पैन वांगपेरॉन्ग

3
@niaster मैं निश्चित रूप से सहमत हूँ। जब से मैंने यह उत्तर दिया है, तब से ब्राउज़र समर्थन पहले से बेहतर हो गया है :)
जोश क्रोज़ियर

1
@incarnate हाँ .. यह बहुत बुरा नहीं है :) ऐसा लगता है कि पिछली बार ओपी ऑनलाइन 7/11/11 में था (जिस तारीख को सवाल पूछा गया था ..) तो मुझे संदेह है कि बदल जाएगा।
जोश क्रॉजियर

18
यह निश्चित नहीं है कि पुरानी प्रथा ठीक होने पर हमें "नई प्रथाओं को अपनाने" की आवश्यकता क्यों है। ऐसा करने का कोई फायदा नहीं है: कोड छोटा नहीं है, और न ही यह कोई बेहतर प्रदर्शन करता है, और अभी भी ऐसे ब्राउज़र हैं जो vw / vh का समर्थन नहीं करते हैं।
cimmanon

3
क्रोम उपयोगकर्ता एजेंट स्टाइलशीट डिफ़ॉल्ट रूप से शरीर में 8px मार्जिन जोड़ता है (अन्य ब्राउज़रों के बारे में निश्चित नहीं है), इसलिए मुझे margin: 0;दाईं ओर लगातार ऊर्ध्वाधर स्क्रॉल बार से बचने के लिए भी जोड़ना था ।
एंडी रेडडजेट

121

यदि आपकी पृष्ठभूमि छवि है, तो आप इसके बजाय इसे सेट करना चाहेंगे:

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

यह सुनिश्चित करता है कि जब आपके व्यूपोर्ट की तुलना में कंटेंट लंबा होता है तो आपके बॉडी टैग को बढ़ते रहने दिया जाता है और जब आप स्क्रॉल करना शुरू करते हैं तो बैकग्राउंड इमेज लगातार दोहराती / स्क्रॉल करती रहती है।

याद रखें कि आप में कील के लिए एक रास्ता खोजने की जरूरत होगी आप IE6 समर्थन करने के लिए है, तो height:100%शरीर के लिए, IE6 व्यवहार करता है heightकी तरह min-heightवैसे भी।


यह भी काम करता है जब शरीर के नीचे एक वैश्विक फ्लेक्सबॉक्स होता है (शरीर> # फ्लेक्सबॉक्स-रैपर)
justnorris

2
यह सही उत्तर है, क्योंकि स्वीकृत उत्तर नहीं बढ़ेगा क्योंकि सामग्री एकल स्क्रीन से अधिक लंबी हो जाती है।
सिंपलजी

बहुत बहुत धन्यवाद, एंग्री डैन, मेरी साइट के निचले हिस्से में वह बदसूरत सफेद स्थान चला गया है!
बोरिस बुर्कोव

बेशक, जब से यह सवाल सामने आया था, पोर्ट आधारित आयाम एक बात बन गए। तो अब आप बस कर सकते हैंbody{min-height: 100vh}
एंग्री डैन

आपको body { height: auto; }FireFox में नहीं दिखाए जाने के लिए स्क्रॉलबार की भी आवश्यकता है । इसके अलावा, पूरी तरह से काम करता है।
टॉर्केड

82

यदि आप शरीर पर हाशिये पर रखना चाहते हैं और स्क्रॉल बार नहीं चाहते हैं, तो निम्नलिखित सीएसएस का उपयोग करें:

html { height:100%; }
body { position:absolute; top:0; bottom:0; right:0; left:0; }

सेटिंग body {min-height:100%} आपको स्क्रॉल बार देगा।

Http://jsbin.com/aCaDahEK/2/edit?html,output पर डेमो देखें ।


7
एकमात्र काम के जवाब के लिए धन्यवाद :) मुझे लगता है कि 'निरपेक्ष' ने यह काम किया
दिमित्री मटवेव

स्क्रॉलबार्स के बिना फ़ायरफ़ॉक्स में मेरे लिए अच्छी तरह से काम करता है, धन्यवाद। स्वीकृत उत्तर नहीं है।
एंड्रयू

@ और काफी हद तक, यह फ़ायर्फ़ॉक्स में स्क्रॉल-बार देता है। हालाँकि आपको स्वीकृत उत्तर के लिए क्या चाहिए height: auto;, यह bodyक्लॉज़ के साथ-साथ स्क्रॉलबार के लिए अब पॉप अप करने के लिए है।
Torxed

@Torxed मुझे अभी भी FireFox में स्क्रॉल बार मिलते हैं। ऑटो सेटिंग को ऊँचाई पर जोड़ना मेरे लिए काम नहीं आया :(
ट्रैविस क्रुम

यह मेरे लिए Chrome 56.0.2924.87 (64-बिट) में काम नहीं किया।
रयान


24

विभिन्न परिदृश्यों के परीक्षण के बाद, मेरा मानना ​​है कि यह सबसे अच्छा समाधान है:

html {
    width: 100%;
    height: 100%;
    display: table;
}

body {
    width: 100%;
    display: table-cell;
}

html, body {
    margin: 0px;
    padding: 0px;
}

यह उस में गतिशील है htmlऔर bodyतत्व अपनी सामग्री के अतिप्रवाह होने पर स्वचालित रूप से विस्तार करेंगे। मैंने फ़ायरफ़ॉक्स, क्रोम और IE 11 के नवीनतम संस्करण में इसका परीक्षण किया।

यहाँ पूरी फ़िडल देखें (आपके लिए टेबल से नफरत होने पर, आप इसे डिव का उपयोग करने के लिए हमेशा बदल सकते हैं):

https://jsfiddle.net/71yp4rh1/9/


कहा जा रहा है कि, यहाँ पोस्ट किए गए उत्तरों के साथ कई मुद्दे हैं

html, body {
    height: 100%;
}

उपरोक्त सीएसएस का उपयोग करने से html और बॉडी एलिमेंट का स्वतः विस्तार नहीं होगा, यदि उनकी सामग्री यहाँ दिखाई गई है।

https://jsfiddle.net/9vyy620m/4/

जैसा कि आप स्क्रॉल करते हैं, दोहराए जाने वाली पृष्ठभूमि पर ध्यान दें? ऐसा इसलिए हो रहा है क्योंकि बॉडी एलिमेंट की हाइट उसके चाइल्ड टेबल ओवरफ्लो होने के कारण नहीं बढ़ी है। यह किसी अन्य ब्लॉक एलिमेंट की तरह विस्तृत क्यों नहीं होता है? मुझे यकीन नहीं है। मुझे लगता है कि ब्राउज़र इसे गलत तरीके से संभालते हैं।

html {
    height: 100%;
}

body {
    min-height: 100%;
}

शरीर पर 100% की न्यूनतम ऊंचाई निर्धारित करना जैसा कि ऊपर दिखाया गया है अन्य समस्याओं का कारण बनता है। यदि आप ऐसा करते हैं, तो आप यह निर्दिष्ट नहीं कर सकते हैं कि एक बाल दिवस या तालिका यहां दिखाए गए प्रतिशत को ऊपर ले जाएगी:

https://jsfiddle.net/aq74v2v7/4/

आशा है कि यह किसी की मदद करता है। मुझे लगता है कि ब्राउज़र इसे गलत तरीके से संभाल रहे हैं। मैं उम्मीद करूंगा कि अगर बच्चों के अतिप्रवाह में शरीर की ऊँचाई अपने आप बढ़ने लगे तो वे अपने आप ही बड़े हो जाएंगे। हालाँकि, ऐसा प्रतीत नहीं होता है जब आप 100% ऊंचाई और 100% चौड़ाई का उपयोग करते हैं।


3
मैंने इस पृष्ठ पर उच्च मत वाले सभी उत्तरों की कोशिश की, लेकिन किसी ने काम नहीं किया। यह एक किया!
रयान

यह उत्तर स्वीकृत होना चाहिए। इसका height: 100vhकोई हल नहीं है। अपने शीर्ष कंटेनर को 100vhउच्च करने के लिए सेट करना और 100vwसमस्या हो सकती है यदि कंटेनर में स्क्रॉलबार है - तो यह उससे बड़ा होना चाहिए (और स्क्रॉलबार को अनावश्यक रूप से दिखाई दे सकता है)। height: 100vhहमारे लिए भी वजह से समस्याओं नए Android उपकरणों (एंड्रॉयड 9 के साथ जैसे Xiaomi एम आई 9), जहां कंटेनर स्क्रीन अपने आप से भी बड़ा हो सकता है, और दस्तावेज़ के मुख्य भाग अनावश्यक खड़ी स्क्रॉलबार होगा पर।
12 अगस्त को jtompl

21

वस्तुतः हर सीएसएस फ़ाइल जो मैं उपयोग करता हूं, उसके प्रारंभ पर मैं जो प्रयोग करता हूं वह निम्नलिखित है:

html, body{
    margin: 0;

    padding: 0;

    min-width: 100%;
    width: 100%;
    max-width: 100%;

    min-height: 100%;
    height: 100%;
    max-height: 100%;
}

0 का मार्जिन यह सुनिश्चित करता है कि HTML और BODY तत्व ब्राउज़र द्वारा ऑटो-पोस्ट नहीं किए जा रहे हैं, उनमें से बाईं या दाईं ओर कुछ स्थान है।

0 की पैडिंग यह सुनिश्चित करती है कि HTML और BODY तत्व ब्राउज़र डिफॉल्ट के कारण स्वचालित रूप से अपने अंदर की हर चीज को नीचे या दाएं नहीं धकेल रहे हैं।

यह सुनिश्चित करने के लिए कि ब्राउज़र वास्तव में एक ऑटो-सेट मार्जिन या पैडिंग है, केवल कुछ अजीब, अलौकिक सामान होने के बावजूद, चौड़ाई और ऊँचाई वेरिएंट 100% पर सेट है, ताकि ब्राउज़र उन्हें वास्तव में ऑटो-सेट मार्जिन या पैडिंग करने की प्रत्याशा में न दिखाए। शायद उन्हें जरूरत नहीं है।

यह समाधान भी है कि इसका मतलब है, जैसे मैं जब मैं पहली बार HTML और सीएसएस कई साल पहले शुरू कर दिया था, आप अपने पहले देने के लिए नहीं होगा <div>एक margin:-8px;यह ब्राउज़र विंडो के कोने में फिट बनाने के लिए।


पोस्ट करने से पहले, मैंने अपने दूसरे फुलस्क्रीन सीएसएस प्रोजेक्ट को देखा और पाया कि मैंने body{margin:0;}जो कुछ भी इस्तेमाल किया था वह सिर्फ और कुछ नहीं था, जो मैंने उस पर काम कर रहे 2 वर्षों में ठीक काम किया है।

आशा है कि यह विस्तृत उत्तर मदद करता है, और मुझे आपका दर्द महसूस होता है। मेरी नजर में, यह गूंगा है कि ब्राउज़रों को शरीर और HTML तत्वों के बाईं ओर और कभी-कभी शीर्ष पर एक अदृश्य सीमा निर्धारित करनी चाहिए।


क्या आप कृपया बता सकते हैं कि width: 100%शरीर और HTML तत्वों का संभावित उद्देश्य क्या है ? हां, मैं समझता हूं, कि व्यावहारिक दृष्टि से, body { margin: 0; }ज्यादातर मामलों में पर्याप्त होना चाहिए। मैं अभी और अच्छी तरह से समझना चाहता हूं।
जॉन सीजे

21

एक त्वरित अद्यतन

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

आज के सीएसएस के साथ एक बेहतर समाधान

html, body{ 
  min-height: 100vh;
  overflow: auto;
}

2
यह मौजूदा उत्तरों पर कुछ अलग कैसे पेश करता है?
cimmanon

3
मैंने दूसरों को भी आजमाया है, लेकिन मेरे लिए काम नहीं किया। यह काम किया है, तो यह किसी जरूरतमंद के लिए एक समाधान हो सकता है। @ साइमनमैन
जयंत वार्ष्णेय

मुझे कहना है कि यह मेरे लिए अन्य उच्च वोट उत्तरों के अलावा अन्य के लिए काम करता है। overflow: autoयहाँ जादू करो। Btw मैं क्रोम का उपयोग करें
SkuraZZ

केवल विकल्प (मैंने पाया है) जो ऊंचाई को आकार देने के लिए अतिप्रवाह सामग्री की अनुमति देता है।
डैनियल शार्प


4

जरूरत पड़ने पर आप जेएस का भी इस्तेमाल कर सकते हैं

var winHeight = window.innerHeight    || 
document.documentElement.clientHeight || 
document.body.clientHeight;

var pageHeight = $('body').height();
if (pageHeight < winHeight) {
    $('.main-content,').css('min-height',winHeight)
}

लेकिन इसके लिए आपको जरूरत से ज्यादा चीजों को जोड़ना होगा जैसे jQuery लाइब्रेरी और जावास्क्रिप्ट में लिखना जबकि यह CSS में किया जा सकता है।
फ्रंट-एंड डेवलपर

3

प्रयत्न

<html style="width:100%; height:100%; margin: 0; padding: 0;">
<body style="overflow:hidden; width:100%; height:100%; margin:0; padding:0;">

2
क्या आप कृपया बता सकते हैं कि width: 100%शरीर और HTML तत्वों का संभावित उद्देश्य क्या है ? हां, मैं समझता हूं, कि व्यावहारिक दृष्टि से, body { margin: 0; }ज्यादातर मामलों में पर्याप्त होना चाहिए। मैं अभी और अच्छी तरह से समझना चाहता हूं।
जॉन सीजे

3

कृपया इसे जाँचे:

* {margin: 0; padding: 0;}    
html, body { width: 100%; height: 100%;}

या नया तरीका देखें व्यूपोर्ट ऊंचाई:

html, body { width: 100vw; height: 100vh;}

व्यूपोर्ट: यदि आपके व्यूपोर्ट का उपयोग करने का मतलब स्क्रीन आकार के लिए जो भी स्क्रीन की पूरी सामग्री आएगी।


कृपया अपने समाधान का स्पष्टीकरण शामिल करें, ताकि इस उत्तर को खोजने वाले अन्य समझ सकें। धन्यवाद!
शॉन

क्या आप कृपया बता सकते हैं कि width: 100%शरीर और HTML तत्वों का संभावित उद्देश्य क्या है ?
जॉन सीजे

तो मैं कहता हूं कि मेरे पास 50 स्तंभों वाली एक मेज है और 1000 पंक्तियों की संख्या 1000 से 9999 के बीच है, उनका क्या होगा, क्या वे खिड़की से आगे स्क्रॉल करेंगे जैसे हम सामान्य रूप से करते हैं या उनके पास एक अतिप्रवाह प्रकार स्क्रॉलबार होगा
PirateApp

3

यदि आप अपनी स्वयं की CSS फ़ाइल को संपादित करने का कार्य नहीं चाहते हैं और अपने द्वारा ऊँचाई के नियमों को परिभाषित करते हैं, तो अधिकांश विशिष्ट CSS फ्रेमवर्क इस मुद्दे को पृष्ठ की संपूर्णता को भरने वाले बॉडी एलिमेंट के साथ, अन्य मुद्दों पर, कई के साथ सहजता से हल करते हैं। व्यूपोर्ट का आकार।

उदाहरण के लिए, टैसिट सीएसएस फ्रेमवर्क इस मुद्दे को बॉक्स से बाहर हल करता है, जहां आपको किसी भी सीएसएस नियमों और वर्गों को परिभाषित करने की आवश्यकता नहीं है और आप बस अपने HTML में सीएसएस फ़ाइल को शामिल करते हैं।


2
html {
    background: url(images/bg.jpg) no-repeat center center fixed; 
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    min-height: 100%;
}
html body {
    min-height: 100%
}

सभी प्रमुख ब्राउज़रों के लिए काम करता है: एफएफ, क्रोम, ओपेरा, IE9 +। पृष्ठभूमि छवियों और ग्रेडिएंट्स के साथ काम करता है। स्क्रॉलबार सामग्री की जरूरत के रूप में उपलब्ध हैं।


2

मैं इसका उपयोग करूंगा

html, body{
      background: #E73;
      min-height: 100%;
      min-height: 100vh;
      overflow: auto; // <- this is needed when you resize the screen
    }
<html>
    <body>
    </body>
</html>

ब्राउजर का उपयोग करेगा min-height: 100vhऔर यदि किसी तरह ब्राउजर थोड़ा पुराना min-height: 100%है तो कमबैक होगा।

overflow: autoयदि आप शरीर चाहते हैं और एचटीएमएल उनकी ऊंचाई का विस्तार करने के लिए जब आप स्क्रीन (उदाहरण के लिए एक मोबाइल आकार करने के लिए) का आकार बदलने के लिए आवश्यक है



1

सभी उत्तर 100% सही और अच्छी तरह से समझाया गया है, लेकिन मैंने इसे उत्तरदायी बनाने के लिए कुछ अच्छा और बहुत सरल किया।

यहाँ तत्व 100% ऊँचाई का व्यू पोर्ट लेगा, लेकिन जब मोबाइल व्यू की बात आती है तो यह पोर्ट्रेट व्यू (मोबाइल) पर विशेष रूप से अच्छा नहीं लगता है, इसलिए जब व्यू पोर्ट छोटा हो रहा है तो एलिमेंट एक-दूसरे पर गिर जाएगा और ओवरलैप हो जाएगा। तो यह थोड़ा उत्तरदायी बनाने के लिए यहाँ कोड है। आशा है कि किसी को इससे मदद मिलेगी।

<style>
.img_wrap{
      width:100%;
      background: #777;
}
.img_wrap img{
      display: block;  
      width: 100px;
      height: 100px;
      padding: 50px 0px;
      margin: 0 auto;
}
.img_wrap img:nth-child(2){
      padding-top: 0;
}
</style>

<div class="img_wrap">
  <img src="https://i.pinimg.com/originals/71/84/fc/7184fc63db0516a00e7d86900d957925.jpg" alt="">
  <img src="https://i.pinimg.com/originals/71/84/fc/7184fc63db0516a00e7d86900d957925.jpg" alt="">
</div>

<script>
   var windowHeight = $(window).height();
   var elementHeight = $('.img_wrap').height();

   if( elementHeight > windowHeight ){
       $('.img_wrap').css({height:elementHeight});
   }else{
       $('.img_wrap').css({height:windowHeight});
   }
</script>

यहाँ JSfiddle डेमो है।


0

यहां अपडेट करें

html
  {
    height:100%;
  }

body{
     min-height: 100%;
     position:absolute;
     margin:0;
     padding:0; 
}

-1

तल पर अतिरिक्त जगह के बारे में: अपने पृष्ठ ASP.NET अनुप्रयोग है? यदि हां, तो संभवतः आपके मार्कअप में लगभग सब कुछ है। रूप को भी स्टाइल करना न भूलें। जोड़ा जा रहा है overflow:hidden;फार्म के लिए तल पर अतिरिक्त जगह निकल सकता है।


6
मैं अतिप्रवाह का उपयोग करने की अनुशंसा नहीं करता: छिपा हुआ जब तक कि आपके पास वास्तव में अच्छा कारण न हो। यह जानें कि चीजें ओवरफ्लो क्यों हो रही हैं और समायोजित करें, इसलिए यह ओवरफ्लो नहीं होगा
jontro

-1
@media all {
* {
    margin: 0;
    padding: 0;
}

html, body {
    width: 100%;
    height: 100%;
} }

क्या आप कृपया बता सकते हैं कि width: 100%शरीर और HTML तत्वों का संभावित उद्देश्य क्या है ? हां, मैं समझता हूं, कि व्यावहारिक दृष्टि से, body { margin: 0; }ज्यादातर मामलों में पर्याप्त होना चाहिए। मैं अभी और अच्छी तरह से समझना चाहता हूं।
जॉन सीजे

-5

CSS3 में एक नई विधि है।

 height:100vh

यह ViewPort को ऊंचाई के बराबर 100% बनाता है।

तो आपका कोड होना चाहिए

 body{
 height:100vh; 
 }

5
यह एक साल पहले सितंबर में पोस्ट किए गए उत्तर से कैसे अलग है ?
जोश Crozier

1
आप दोहरा जवाब क्यों देते हैं?
एड्रियानो रेसेंडे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.