2014-09-04 7 views
7

मैं इस कोड है:पाद, लेकिन नहीं चल मध्य हवा यदि पर्याप्त सामग्री नहीं

डेमो: http://jsfiddle.net/z21nz89d/2/

HTML:

<nav class="navbar navbar-default" role="navigation"> 
    <div class="container-fluid"> 
    <!-- Brand and toggle get grouped for better mobile display --> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> 
     <span class="sr-only">Toggle navigation</span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     </button> 
     <a class="navbar-brand" href="#">Brand</a> 
    </div> 

    <!-- Collect the nav links, forms, and other content for toggling --> 
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
     <ul class="nav navbar-nav"> 
     <li class="active"><a href="#">Link</a></li> 
     <li><a href="#">Link</a></li> 
     <li class="dropdown"> 
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <span class="caret"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
      <li><a href="#">Action</a></li> 
      <li><a href="#">Another action</a></li> 
      <li><a href="#">Something else here</a></li> 
      <li class="divider"></li> 
      <li><a href="#">Separated link</a></li> 
      <li class="divider"></li> 
      <li><a href="#">One more separated link</a></li> 
      </ul> 
     </li> 
     </ul> 
     <form class="navbar-form navbar-left" role="search"> 
     <div class="form-group"> 
      <input type="text" class="form-control" placeholder="Search"> 
     </div> 
     <button type="submit" class="btn btn-default">Submit</button> 
     </form> 
     <ul class="nav navbar-nav navbar-right"> 
     <li><a href="#">Link</a></li> 
     <li class="dropdown"> 
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <span class="caret"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
      <li><a href="#">Action</a></li> 
      <li><a href="#">Another action</a></li> 
      <li><a href="#">Something else here</a></li> 
      <li class="divider"></li> 
      <li><a href="#">Separated link</a></li> 
      </ul> 
     </li> 
     </ul> 
    </div><!-- /.navbar-collapse --> 
    </div><!-- /.container-fluid --> 
</nav> 
    <div class="container"> 
     <p>Here comes some content.</p> 
     <p>Here comes some content.</p> 
     <p>Here comes some content.</p> 
     <p>Here comes some content.</p> 
     <p>Here comes some content.</p> 
    </div> 
    <footer> 
     <div class="container"> 
      <div class="row"> 
       <div class="col-md-8"> 
        <p>Some footer-content</p> 
        <p>Some footer-content</p> 
        <p>Some footer-content</p> 
       </div> 
       <div class="col-md-4"> 
        <p>Some footer-content</p> 
        <p>Some footer-content</p> 
       </div> 
      </div> 
     </div> 
    </footer> 

सीएसएस:

footer { 
    background-color: #eee; 
    padding-top: 15px; 
    padding-left: 15px; 
} 

यह मेरे पास बहुत ही बुनियादी बात है, लेकिन आपको बिंदु मिलेगा। जैसा कि आप देख सकते हैं कि पाद लेख कहीं मध्य हवा में स्थित है। मैं इसे पूर्ण स्थिति में रख सकता हूं और इसे आसानी से चिपचिपा बना सकता हूं, लेकिन कई कारणों से मुझे वह नहीं चाहिए।

मैं पाद लेख पूरी सामग्री नीचे होना चाहता हूँ (हां, तो बात करने के लिए बहुत पिछले के रूप में सूचीबद्ध), तथापि, वहाँ पर्याप्त सामग्री मैं पाद लेख नीचे रखा होने की जरूरत नहीं है कि अगर: 0 और छोड़ दिया: 0.

मुझे नहीं पता कि इसे कैसे पूरा किया जाए। मेरा पहला अनुमान यह देखने के लिए जावास्क्रिप्ट का उपयोग करना होगा कि साइट कितनी जगह है और क्या साइट स्क्रॉल करने योग्य है या नहीं।

+0

जो आप समझा रहे हैं वह एक चिपचिपा पाद लेख है। बिल्कुल यकीन नहीं है कि आप क्या चाहते हैं। चिपचिपा पाद लेख सामग्री के निचले हिस्से में पाद लेख रखता है जब तक कि खिड़की की ऊंचाई को भरने के लिए पर्याप्त सामग्री न हो; तो यह नीचे रखा गया है: 0, बाएं: 0. –

+0

तब मुझे वास्तव में काम करने में समस्या होने लगती है जैसा लगता है। –

उत्तर

12

यह एक अच्छा पाद लेख बनाने का सबसे आसान तरीका है। एक "रैपर" div में अपने पाद लेख लेकिन सब कुछ लपेटें। फिर अपने रैपर पर 100% की न्यूनतम ऊंचाई के साथ, अपने एचटीएमएल और शरीर की ऊंचाई 100% पर सेट करें। इसके बाद, आपको इस आवरण के लिए नीचे मार्जिन और नीचे पैडिंग देना होगा जो आपके पाद लेख के समान ऊंचाई है। यह एक सम्मोहन की तरह काम करता है।

Demo here

html, body { 
    height: 100%; 
} 
.wrapper { 
    min-height: 100%; 
    margin-bottom: -100px; 
    padding-bottom: 100px; 
} 
footer { 
    height: 100px; 
} 
+0

मैं इसे अपने उत्पादन में अब एक शॉट दूंगा। आपका बहुत बहुत धन्यवाद! –

+0

@ फिलम। कोई समस्या नहीं, मुझे सहायता करके प्रसन्नता होगी! – Tricky12

+0

कभी नहीं, मेरा जवाब पहले से ही मिला है ... –

0

तुम सच में जावास्क्रिप्ट तरह से करना चाहते हैं, तो आप इस कोड के साथ प्राप्त कर सकते हैं:

http://jsfiddle.net/z21nz89d/6/

$(function() { 
    var windowHeight = $(window).height(); 
    var contHeight = $(".main-container").height(); 
    var footHeight = $("footer").height(); 
    var testHeight = windowHeight - footHeight; 

    if (contHeight < testHeight) { 
     $("footer").css("bottom", "0"); 
     $("footer").css("left", "0"); 
    } 
}); 

निम्नलिखित सीएसएस जोड़ने के लिए सुनिश्चित करें नियम, एचटीएमएल, बॉडी सामान बहुत महत्वपूर्ण है।

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

तुम भी के एक वर्ग के साथ एक div में पाद लेख को छोड़कर सभी अपने संदर्भ रैप करने के लिए, मान लें कि, "मुख्य-कंटेनर" चलो होगा, इस तरह आप बनाम पूरे शरीर की ऊंचाई परीक्षण कर सकते हैं सामग्री की ऊंचाई कमर पाद लेख, समझते हैं?

यह सब JSFiddle है।

बस ध्यान दें कि यह वास्तव में ऐसा करने का अर्थपूर्ण तरीका नहीं है। मेरी राय में एक शुद्ध सीएसएस चिपचिपा पाद लेख बेहतर होगा। यदि आप एक का उपयोग नहीं कर सकते हैं, तो यह काम करेगा।

2

आप इस उत्तरदायी सीएसएस कोड का उपयोग कर सकते हैं और यह सभी ब्राउज़र में काम कर रहा है और जब ब्राउज़र का आकार बदल सकता है तो यह ब्राउज़र आकार के अनुसार बदल सकता है।

Live Working Demo

एचटीएमएल कोड:

<div id="wrapper"> 

    <div id="header"> 
     Header is here 
    </div><!-- #header --> 

    <div id="content"> 
     Content is here 
    </div><!-- #content --> 

    <div id="footer"> 
     Footer is here 
    </div><!-- #footer --> 

</div><!-- #wrapper --> 

सीएसएस कोड:

html, 
body { 
    margin:0; 
    padding:0; 
    height:100%; 
} 
#wrapper { 
    min-height:100%; 
    position:relative; 
} 
#header { 
    background:#ededed; 
    padding:10px; 
    text-align:center; 
} 
#content { 
    padding-bottom:100px; /* Height of the footer element */ 
    text-align:center; 
} 
#footer { 
    background:#ffab62; 
    width:100%; 
    height:100px; 
    position:absolute; 
    bottom:0; 
    left:0; 
    text-align:center; 
} 

परिणाम:

result

0

पाद लेख के ऊंचाई अज्ञात है, तो यह की तर्ज में फ्लेक्स, कुछ का उपयोग करने के लिए सबसे अच्छा है:

<body> 
    <header></header> 
    <div class="content"></div> 
    <footer></footer> 
</body> 

और सीएसएस के लिए केवल इसकी आवश्यकता है:

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

और आपको डिस्प्ले सेट करने की आवश्यकता नहीं है: शरीर के लिए फ्लेक्स, यह शरीर के अंदर भी एक रैपर हो सकता है।

ध्यान रखें कि यह IE पर अपेक्षित काम नहीं कर सकता है (नीचे CanIUse लिंक देखें)। हालांकि यह अब के लिए बहुत अच्छा काम करता है!

CanIUse link
उदाहरण के लिए this link देखें।

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