Cameron Kurtz
Cameron Kurtz

Reputation: 25

How to keep footer at the bottom of the page when resizing on bootstrap

I am designing my first website from scratch, and I am trying to learn everything all at once. I have figured most of it out, however, there are a couple things that I can not figure out whatsoever. My question is this, how would I make my footer stick to the bottom of the page when resizing it smaller? I am working in bootstrap, and when I resize the page to small and medium, the footer gets pushed up, and away from where it should be. What am I doing wrong?

Here is my HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title> Delightful Days Daycare</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<script src="https://use.fontawesome.com/b1366dc4f6.js"></script>

<link rel="stylesheet" type="text/css" href="style.css">

<!-- Header -->
  </head>
<body>

<div class="container-fluid background-box">
    <div class="container background-box ">
        <div class="row">
                <div class="box-1 col-sm-12 col-md-6 col-lg-4"><h2><button class="button button1"><a class="box-text" href="about-us.html">ABOUT US</button></a></h2><img src="img/info.png" class="about-img">Learn more about Mrs. Chris and Delightful Days </div>
                <div class="box-2 col-sm-12 col-md-6 col-lg-4"><h2><button class="button button2"><a class="box-text" href="photos.html">PHOTOS</a></button></h3><img src="img/photos.png" class="photos-img">View our photo gallery</div>
                <div class="box-3 col-sm-12 col-md-6 col-lg-4"><h2><button class="button button3"><a class="box-text" href="calendar.html">CALENDAR</a></button></h3><img src="img/calendar.png" class="cal-img">Stay up to date with our official calendar to view holidays and closed days</div>
            </div>
            <div class="row">
                <div class="box-4 col-sm-4 col-md-6 col-lg-4"><h2><button class="button button4"><a class="box-text" href="contact-us.html">CONTACT US</a></button></h3>
                    <img src="img/phone.png" class="phone-img">Need to get in touch? View our contact page for more information </div>
                <div class="box-5 col-sm-4 col-md-6 col-lg-4"><h2><button class="button button5"><a class="box-text" href="openings.html">OPENINGS</a></h2></button>
                    <img src="img/open.png" class="open-img">View available openings </div>
                <div class="box-6 col-sm-4 col-md-6 col-lg-4"><h2><button class="button button6"><a class="box-text" href="pricing.html">PRICING</a></button></h3>
                    <img src="img/money.png" class="pricing-img">View our pricing page for more information</div>
        </div>
    </div>
</div>
    <!-- Footer -->
    <div class="navbar navbar-default navbar-static-bottom">
        <div class="container-fluid footer">
            <div class="row">
                    <div class="footer-1">
                        <div class="col-sm-4 col-md-4 col-lg-4"></div>
                        <div class="col-sm-4 col-md-4 col-lg-4">
                            <a href="https://facebook.com"><i class="fa fa-facebook fa-4x" aria-hidden="true"></a></i>
                            <a href="https://yelp.com"><i class="fa fa-yelp fa-4x" aria-hidden="true"></a></i>
                            </div>
                            <div class="col-sm-4 col-md-4 col-lg-4"></div>
                    </div>
                <div class="copyright">
                    &#0169; 2016 DELIGHTFUL DAYS DAYCARE. ALL RIGHTS RESERVED
                </div>
            </div>
        </div>
    </div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

</body>
</html>

And my CSS:

html,body {
    color: #8c8c8c;
    font-family: "source sans pro";
    font-style: normal;
    height: 100%;
}

.background-box{
    background-color: #4c4c4c;
    height: 1000.5px;
    color: white !important;
    font-size: 20px;
    text-align: center;
    position: auto;
    display: block;
    margin: auto;

}


.box-1{
    background-color: #FF3D7F;
    width: 330px;
    height: 394px;
    border-radius: 9px;
    /*margin-left: 181px;*/
    margin-top: 50px;
    margin: 2%;
}

.button{
    color: white;
    border:none;
    color: white;
    border-radius: 100px;
    height: 48px;
    width: 178px
}

.button1{
    background-color: #DB1759;
    text-align: center;
}

.button2{
    background-color: #C4C172;
}
.button3{
    background-color: #58A58B;
}
.button4{
    background-color: #B58C43;
}
.button5{
    background-color: #26978F;
}
.button6{
    background-color: #FF6362
}
.box-2{
    background-color: #DAD8A7;
    width: 330px;
    height: 394px;
    border-radius: 9px;
    /*margin-left: 44px;*/
    margin-top: 50px;
    margin: 2%;
}

.box-3{
    background-color: #7FC7AF;
    width: 330px;
    height: 394px;
    border-radius: 9px;
    /*margin-left: 44px;*/
    margin-top: 50px;
    margin: 2%;
}

.box-4{
    background-color: #D7B066;
    width: 330px;
    height: 394px;
    border-radius: 9px;
    /*margin-left: 181px;*/
    margin-top: 46px;
    margin: 2%;
}

.box-5{
    background-color: #3FB8AF;
    width: 330px;
    height: 394px;
    border-radius: 9px;
    /*margin-left: 44px;*/
    margin-top: 46px;
    margin: 2%;
}


.box-6{
    background-color: #FF9E9D;
    width: 330px;
    height: 394px;
    border-radius: 9px;

    /*margin-left: 44px;*/
    margin-top: 46px;
    margin: 2%;
}
.box-text{
    color: white;
       font-family: "Source Sans Pro";
   font-weight: 600;
   font-style: normal;
   font-size: 26px;
}
/*--------Box images------*/
.about-img{
padding-right: 102px;
padding-left: 100px;
padding-bottom: 38px;
position: relative;
padding-top: 43px;
text-align: center;
}


.photos-img{
padding-right: 112px;
padding-left: 112px;
padding-top: 66px;
padding-bottom: 62px;
}
.cal-img{
padding-right: 108px;
padding-left: 109px;
padding-top: 40px;
padding-bottom: 36px;
}

.phone-img{
padding-right: 109px;
padding-left: 109px;
padding-top: 60px;
padding-bottom: 41px;   
}
.open-img{
padding-right: 107px;
padding-left: 108px;
padding-top: 59px;
padding-bottom: 63px;
}

.pricing-img{
padding-right: 108px;
padding-left: 109px;
padding-top: 145px;
padding-bottom: 136px;
}
.footer{
    position: relative;
    height: 150px;
    margin-top:;
}

.footer-1{
    height: 125px;
    padding-top: 36px;
    background: #FF9E9D;
    display: flex;
    text-align: center;
}

.copyright{
    background-color: #4c4c4c;
    height: auto;
    color: white;
    text-align: center;
    font-family: "source sans pro light";
    padding-top: 36px;
    padding-bottom: 33px;
}
.fa{
    color: white;
    margin-left: 40px;
    margin-right: 40px;
}

div.navbar.navbar-default.navbar-static-bottom{
    margin: 0;
}

Upvotes: 2

Views: 9625

Answers (3)

kbdev
kbdev

Reputation: 1315

You should be able to achieve a footer that sticks to the bottom of your page at all times by using something like this template in your HTML:

<!DOCTYPE html>
  <head>
      <title></title>
  </head>
  <body>
      <footer></footer>
  </body>
</html>

And this in your CSS:

html {
  position: relative;
  min-height: 100%;
}
body {
  margin: 0 0 100px; /* bottom = footer height */
}
footer {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 100px;
  width: 100%;
}

It should work without all of the additional Bootstrap classes like "navbar navbar-default navbar-static-bottom navbar-fixed-bottom".

Upvotes: 3

Iandra Bedin
Iandra Bedin

Reputation: 126

Try to wrap your code like this:

HTML code:

<body>
  <div class="page-wrap">      
    .
    .
    .          
  </div>
  <footer class="page-footer">
    .
    .
    .
  </footer>
</body>

CSS code:

* {
  margin: 0;
}
html, body {
  height: 100%;
}
.page-wrap {
  min-height: 100%;
  margin-bottom: -20px; /* Height of the footer */
}
.page-wrap:after {
  content: "";
  display: block;
}
.page-footer, .page-wrap:after {
  height: 20px; 
}
.page-footer {
  background: orange;
}

This way your footer has a fixed height, and it only shows when you arrive at the end of the page.

Upvotes: 0

DavidG
DavidG

Reputation: 119017

You need to use the navbar-fixed-bottom class:

<div class="navbar navbar-default navbar-static-bottom navbar-fixed-bottom"> 
    ...
</div>

Upvotes: 3

Related Questions