बूटस्ट्रैप 3 नीचे फ्लश पाद। निश्चित नहीं


177

मैं बूटस्ट्रैप 3 का उपयोग उस साइट के लिए कर रहा हूं जिसे मैं डिजाइन कर रहा हूं।

मैं इस नमूने की तरह एक पाद चाहते हैं। नमूना

कृपया ध्यान दें कि मैं नहीं चाहता कि यह फिक्स्ड हो इसलिए बूटस्ट्रैप नेबर-फिक्स्ड-बॉट मेरी समस्या का समाधान नहीं करता है। मैं बस यह चाहता हूं कि यह हमेशा सामग्री के निचले भाग पर हो और उत्तरदायी भी हो।

किसी भी गाइड की बहुत सराहना की जाएगी।


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

क्षमा करें यदि मैं स्पष्ट नहीं था। अब क्या होता है जब सामग्री शरीर में पर्याप्त सामग्री नहीं होती है। मेरा पाद ऊपर चला जाता है और फिर यह खाली जगह छोड़ देता है।

यह वही है जो मेरे पास अब मेरे नावबार के लिए है

<nav class="navbar navbar-inverse navbar-bottom" style="padding:0 0 120px 0">
        <div class="container">
            <div class="row">
                <div class="col-sm-4">
                    <h5 id='footer-header'> SITEMAP </h3>
                    <div class="col-sm-4" style="padding: 0 0 0 0px">
                        <p>News</p>
                        <p>contact</p>
                    </div>
                    <div class="col-sm-4" style="padding: 0 0 0 0px">
                        <p>FAQ</p>
                        <p>Privacy Policy</p>
                    </div>
                </div>
                <div class="col-sm-4">
                    <h5 id='footer-header'> xxxx </h3>
                    <p>yyyyyyyyyyyyy</p>
                </div>
                <div class="col-sm-4">
                    <h5 id='footer-header'> xxxxx </h3>
                    <p>uuuuuuuuuuuuuuu</p>
                </div>
            </div>
        </div>
    </nav>

सीएसएस

.navbar-bottom {
min-height: 300px;
margin-top: 100px;
background-color: #28364f;
padding-top: 35px;
color:#FFFFFF;
}

क्या आपके पास उदाहरण कोड है जो आप काम कर रहे हैं जो आपको एक समस्या दे रहा है?
badAdviceGuy

यह नियमित पाद लेख की तरह लगता है, यदि आप फिक्स्ड नहीं चाहते हैं, तो आप शैली को अपडेट कर सकते हैं। आप किस मुद्दे पर चल रहे हैं?
उत्पत

जब यह आपके HTML में आखिरी चीज है, तो यह हमेशा नीचे की तरफ रहेगा। भ्रामक प्रश्न जिसे समझने के लिए एक कोड उदाहरण की आवश्यकता है कि समस्या क्या है।
जो कॉनलिन


@davidpauljunior: वे चिपचिपे पाद हैं जो मैं नहीं खोज रहा हूँ
user3169403

जवाबों:


124

नीचे दिए गए उदाहरण देखें। यदि पृष्ठ में सामग्री कम है और यदि पृष्ठ में अधिक सामग्री है तो यह सामान्य पाद लेख की तरह व्यवहार करने के लिए आपके पाद लेख को नीचे की ओर चिपका देगा।

सीएसएस

* {
    margin: 0;
}
html, body {
    height: 100%;
}
.wrapper {
    min-height: 100%;
    height: 100%;
    margin: 0 auto -155px; /* the bottom margin is the negative value of the footer's height */
}
.footer, .push {
    height: 155px; /* .push must be the same height as .footer */
}

एचटीएमएल

<div class="wrapper">
  <p>Your website content here.</p>
  <div class="push"></div>
</div>
<div class="footer">
  <p>Copyright (c) 2008</p>
</div>

अद्यतन : बूटस्ट्रैप का नया संस्करण प्रदर्शित करता है कि बिना आवरण को जोड़ने के लिए चिपचिपा पाद कैसे जोड़ा जाए। कृपया अधिक विवरण के लिए Jboy Flaga का उत्तर देखें।


आपके लिंक टूट गए हैं
हाल्टर

2
रैपर में दो ऊंचाई की संपत्ति की परिभाषा क्यों है?
हार्डली नॉटिबल

@ हर्डलिऑनटेबल एक न्यूनतम चौड़ाई है जो आवरण को कम करने के लिए मजबूर करती है भले ही सामग्री कम हो।
सुरजीत एसएम

फिर भी सोच रहा था कि दो ऊंचाई गुण परिभाषा क्यों हैं। आपने @SurjithSM
Erowlin

@Erowlin यह एक त्रुटि है। आपको दो ऊंचाई वाले गुणों की आवश्यकता नहीं है। केवल न्यूनतम ऊंचाई पर्याप्त होगी, जवाब संपादित किया।
सुरजीत एसएम

316

यहां बूटस्ट्रैप से एक सरलीकृत समाधान है (जहां आपको एक नया वर्ग बनाने की आवश्यकता नहीं है): http://getbootstrap.com/examples/sticky-footer-navbar/

जब आप उस पृष्ठ को खोलते हैं, तो एक ब्राउज़र और "स्रोत देखें" पर राइट क्लिक करें और चिपचिपा-पाद लेख- navbar.css फ़ाइल ( http://getbootstrap.com/examples/sticky-footer-navbar/stavy-footer-navbar) खोलें । सीएसएस )

आप देख सकते हैं कि आपको केवल इस CSS की आवश्यकता है

/* Sticky footer styles
-------------------------------------------------- */
html {
  position: relative;
  min-height: 100%;
}
body {
  /* Margin bottom by footer height */
  margin-bottom: 60px;
}
.footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  /* Set the fixed height of the footer here */
  height: 60px;
  background-color: #f5f5f5;
}

इस HTML के लिए

<html>
    ...
    <body>
        <!-- Begin page content -->
        <div class="container">
        </div>
        ...

        <footer class="footer">
        </footer>
    </body>
</html>

19
यह (बूटस्ट्रैप डॉक्स / उदाहरण से) स्वीकृत उत्तर होना चाहिए।
रिछाराम

5
मेरे लिए यह काम नहीं करता है क्योंकि मेरा फूटर लंबा है। यह बहुत अच्छा है यदि आप सिर्फ एक पैराग्राफ चाहते हैं, लेकिन मेरे पास कई कॉलम हैं - इस पद्धति का उपयोग करते हुए, मैं पाद के नीचे एक मार्जिन के साथ समाप्त होता हूं जब मैं छोटे आकार में नीचे जाता हूं
नाइटमैक्स

9
इस बूटस्ट्रैप चिपचिपा पाद समाधान नहीं है? मुझे नहीं लगता कि ओपी का यह मतलब है। मेरे लिए, एक लंबे पृष्ठ के साथ मेरा पाद स्क्रीन के निचले भाग में दिखाई दिया, लेकिन सामग्री के नीचे (यानी सामग्री के ऊपर) नहीं। मुझे स्थिति बदलनी थी: निरपेक्ष; इसके लिए रिश्तेदार (.footer वर्ग) को काम करने के लिए।
टीनो म्लेकरन

24
यह सही उत्तर होगा यदि इस विषय को शीर्षक में "तय नहीं" किया गया ...
खंडहर

1
यह केवल निश्चित आकार वाले पादलेखों के लिए काम करता है, मैं @ChristopherTan द्वारा प्रस्तावित फिलिप वाल्टन के समाधान को पसंद करता हूं, जो सुपर स्लिम है और पाद की ऊंचाई से स्वतंत्र है
बुर्जि

16

फ्लेक्सबॉक्स का उपयोग करें क्योंकि आप इसे अपने निपटान में उपयोग कर सकते हैं। बूटस्ट्रैप 4 द्वारा प्रस्तावित समाधान अभी भी उत्तरदायी लेआउट में ओवरलैप सामग्री का शिकार करता है, उदाहरण के लिए: यह मोबाइल दृश्य में टूट जाएगा, मैं सबसे साफ चाल में आता हूं यहां दिखाए गए फ्लेक्सबॉक्स समाधान डेमो का उपयोग करना है :( https://philipwalton.github.io / सॉल्व-बाय-फ्लेक्सबॉक्स / डेमो / स्टिकी-फूटर / ) इस तरह से हमें निश्चित ऊंचाई के मुद्दे से निपटना नहीं है जो अब तक एक अप्रचलित समाधान है ... यह समाधान बूटस्ट्रैप 3 और 4 के लिए काम करता है जो भी आप उपयोग कर रहे हैं।

<body class="Site">
  <header></header>
  <main class="Site-content"></main>
  <footer></footer>
</body>

.Site {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

.Site-content {
  flex: 1;
}

1
यह एक बहुत ही चतुर उपाय है। मुझे लगता है कि सीएसएस के पास बहुत अधिक प्रस्ताव है कि हम यह भी नहीं जानते कि इसका सबसे अधिक लाभ कैसे उठाया जाए।
गिल्बर्ट

2
मुझे यह समाधान पसंद है। गजब का।
बगुस अजी संतोसो

14

अद्यतन: यह सीधे अपनी संपूर्णता में प्रश्न का उत्तर नहीं देता है, लेकिन दूसरों को यह उपयोगी लग सकता है।

यह आपके उत्तरदायी पाद लेख के लिए HTML है

<footer class="footer navbar-fixed-bottom">
     <div class="container">
     </div>
</footer>

सीएसएस के लिए

footer{
    width:100%;
    min-height:100px;    
    background-color: #222; /* This color gets inverted color or you can add navbar inverse class in html */
}

नोट: इस प्रश्न के लिए पोस्टिंग के समय कोड की उपरोक्त पंक्तियाँ पृष्ठ सामग्री के नीचे पाद लेख को धक्का नहीं देती हैं; लेकिन यह पृष्ठ पर कम सामग्री होने पर आपके पाद को पृष्ठ के मध्य रेंगने से रखेगा। एक उदाहरण के लिए, जो पृष्ठ सामग्री के नीचे पाद लेख को धक्का देता है, यहां एक नज़र डालें http://getbootstrap.com/examples/sticky-footer/


यह वास्तव में एक बुरा समाधान है, क्योंकि पादक मुख्य सामग्री को कवर करते हैं जब वे मिलते हैं। आपको padding-bottomमुख्य सामग्री कंटेनर को फ़ुटर की ऊंचाई के बराबर सेट करने की आवश्यकता है । और आपको इसे गतिशील रूप से पृष्ठ loadऔर resizeघटनाओं और पाद लेख पर भी करने की आवश्यकता है DOMSubtreeModified
ताओ

9

अभी भी संघर्ष कर रहे लोगों के लिए और जवाब दिया गया समाधान काफी काम नहीं करता है क्योंकि आप इसे चाहते हैं, यहाँ सबसे सरल समाधान है जो मैंने पाया है।

अपनी मुख्य सामग्री लपेटें और इसे एक न्यूनतम दृश्य ऊंचाई निर्दिष्ट करें। अपनी शैली के लिए जो भी आवश्यक हो, 60 को समायोजित करें।

<div id="content" style="min-height:60vh"></div>
<div id="footer"></div>

Thats यह और यह बहुत अच्छी तरह से काम करता है।


मेरे पास एक ही मुद्दा था जैसा कि प्रश्न में था। यहां लगभग सभी उच्च रैंक वाले उत्तरों की कोशिश करने के बाद, यह एकमात्र ऐसा था जिसने मेरे लिए काम किया। और इसने सभी आकारों में काम किया। केवल मेरे द्वारा किया गया परिवर्तन "न्यूनतम ऊंचाई: 70vh" था। यह आपकी साइट के शीर्ष लेख और पाद लेख के आकार पर निर्भर करेगा।
अरफथ

यह अधिक होना चाहिए, बिल्कुल अनुरोध के समान काम करता है।
यम

इसने मेरी जरूरतों के लिए काम किया। जब तक आप वांछित परिणाम प्राप्त नहीं करते, तब तक केवल मिनट-ऊँचाई मान को ट्विक करें।
21 मई

अद्भुत, यह पाद प्लेसमेंट समस्या का सबसे सरल और कुशल समाधान है!
प्रहलाद यारी

5

गैलेन गिडमैन ने एक उत्तरदायी चिपचिपे पाद की समस्या का एक बहुत अच्छा समाधान पोस्ट किया है जिसमें एक निश्चित ऊंचाई नहीं है। आप उनके ब्लॉग पर उनका पूरा समाधान पा सकते हैं: http://galengidman.com/2014/03/25/responsive-flexible-height-sticky-footers-in-css/

एचटीएमएल

<header class="page-row">
  <h1>Site Title</h1>
</header>

<main class="page-row page-row-expanded">
  <p>Page content goes here.</p>
</main>

<footer class="page-row">
  <p>Copyright, blah blah blah.</p>
</footer>

सीएसएस

html,
body { height: 100%; }

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

.page-row {
  display: table-row;
  height: 1px;
}

.page-row-expanded { height: 100%; }

यह बूटस्ट्रैप के साथ संगत लगता है, और इसलिए स्वीकृत उत्तर होना चाहिए, इम्हो। यह बिल्कुल सही नहीं है, क्योंकि एक क्षैतिज स्क्रॉलबार दिखाई दे रहा है।
फ्लोरियन मर्टेंस

फ्लोरियन: मेरे लिए कोई क्षैतिज स्क्रॉलबार नहीं।
हार्डली नॉटिबल

4

शुद्ध सीएसएस समाधान के लिए, 2 के बाद स्क्रॉल करें <hr>। पहला उत्तर प्रारंभिक उत्तर है (2016 में वापस दिया गया)


ऊपर दिए गए समाधानों का मुख्य दोष यह है कि उनके पास पाद के लिए एक निश्चित ऊंचाई है
और यह सिर्फ वास्तविक दुनिया में कटौती नहीं करता है, जहां लोग एक ज़िलिन संख्या के उपकरणों का उपयोग करते हैं और जब आप कम से कम इसकी उम्मीद करते हैं और उन्हें घुमाने की यह बुरी आदत होती है, तो यह पूर्ण ! ** पाद के पीछे आपकी पृष्ठ सामग्री जाती है!

वास्तविक दुनिया में, आपको एक फ़ंक्शन की आवश्यकता होती है जो पाद की ऊंचाई की गणना करता padding-bottomहै और उस ऊंचाई को समायोजित करने के लिए पृष्ठ सामग्री को गतिशील रूप से समायोजित करता है । और आपको पृष्ठ loadऔर resizeघटनाओं के साथ-साथ पाद लेख पर भी इस छोटे से कार्य को चलाने की आवश्यकता है DOMSubtreeModified(बस अगर आपका पाद गतिशील रूप से अतुल्यकालिक रूप से अपडेट हो जाता है या इसमें एनिमेटेड तत्व शामिल होते हैं जो आपके साथ बातचीत करते समय आकार बदलते हैं)।

यहां jQuery v3.0.0और बूटस्ट्रैप का उपयोग करते हुए अवधारणा का प्रमाण दिया गया है v4-alpha, लेकिन ऐसा कोई कारण नहीं है कि यह प्रत्येक के निचले संस्करणों पर काम न करे।

प्रारंभ में, मैंने इस समाधान को यहां पोस्ट किया है, लेकिन मुझे एहसास हुआ कि इस प्रश्न के तहत पोस्ट करने पर अधिक लोगों की मदद हो सकती है।

नोट: मैं उद्देश्यपूर्ण लपेटा है $([selector]).accomodateFooter()एक jQuery प्लगइन के रूप में, है, तो यह किसी भी डोम तत्व पर चलाया जा सकता है के रूप में सबसे लेआउट में ऐसा नहीं है $('body')'s bottom-paddingका समायोजन है कि जरूरत है, लेकिन साथ तत्व आवरण कुछ पेज position:relative(आमतौर पर के तत्काल माता पिता footer) ।


बाद में संपादित करें (प्रारंभिक उत्तर के बाद 3 वर्ष):

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

यह रहा:


3

यह विधि न्यूनतम मार्कअप का उपयोग करती है। बस अपनी सभी सामग्री को एक .wrapper में रखें जिसमें एक पेडिंग-बॉटम और नेगेटिव मार्जिन-फ़ुट फुटर हाइट के बराबर है (मेरे उदाहरण 100px में)।

html, body {
    height: 100%;
}

/* give the wrapper a padding-bottom and negative margin-bottom equal to the footer height */

.wrapper {
    min-height: 100%;
    height: auto;
    margin: 0 auto -100px;
    padding-bottom: 100px;
}
.footer {
    height: 100px;
}

<body>

<div class="wrapper">
  <p>Your website content here.</p>
</div>
<div class="footer">
   <p>Copyright (c) 2014</p>
</div>

</body>

2

या यह

<footer class="navbar navbar-default navbar-fixed-bottom">
    <p class="text-muted" align="center">This is a footer</p>
</footer>

1

बूटस्ट्रैप के लिए:

<div class="navbar-fixed-bottom row-fluid">
  <div class="navbar-inner">
    <div class="container">
      Text
    </div>
  </div>
</div>

2
प्रश्न विशेष रूप से बताता है कि navbar-fixed-bottomसमस्या हल नहीं होती है।
p4sh4

1

इन समाधानों में से कोई भी मेरे लिए पूरी तरह से काम नहीं करता है क्योंकि मैंने अपने पाद लेख में नौसिखिया-उलटा वर्ग का उपयोग किया है। लेकिन मुझे एक समाधान मिला जो काम किया और जावास्क्रिप्ट-मुक्त। मीडिया के प्रश्नों को बनाने में सहायता के लिए क्रोम का उपयोग किया। पाद की ऊँचाई में परिवर्तन होता है क्योंकि स्क्रीन आकार बदलता है इसलिए आपको उस पर ध्यान देना होगा और तदनुसार समायोजित करना होगा। आपकी पाद सामग्री (मैंने अपनी सामग्री को परिभाषित करने के लिए आईडी = "पाद लेख" सेट की है) इसे नीचे रखने के लिए आसन = निरपेक्ष और नीचे = 0 का उपयोग करना चाहिए। साथ ही चौड़ाई: 100%। यहाँ मेरा सीएसएस मीडिया प्रश्नों के साथ है। आपको न्यूनतम-चौड़ाई और अधिकतम-चौड़ाई समायोजित करनी होगी और कुछ तत्वों को जोड़ना या निकालना होगा:

#footer {
  position: absolute;
  color:  #ffffff;
  width: 100%;
  bottom: 0; 
}
@media only screen and (min-width:1px) and (max-width: 407px)  {
    body {
        margin-bottom: 275px;
    }

    #footer {
        height: 270px; 
    }
}
@media only screen and (min-width:408px) and (max-width: 768px)  {
    body {
        margin-bottom: 245px;
    }

    #footer {
        height: 240px; 
    }
}
@media only screen and (min-width:769px)   {
    body {
        margin-bottom: 125px;
    }

    #footer {
        height: 120px; 
    }
}

0

फ्लेक्सबॉक्स का उपयोग करके मेरे लिए यह काम किया गया है :

.body-class {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}

.body-content {
    flex: 1 0 auto;
    width: 100%;
}

.footer {
    width: 100%;
    height: 60px;
    background-color: #f5f5f5;
    flex: none;
}

स्रोत: https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/

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