Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I am having trouble trying to create a footer that will stay at the bottom of th

ID: 3741037 • Letter: I

Question

I am having trouble trying to create a footer that will stay at the bottom of the browser window if there is not enough content to push it down further. Not a fixed footer! I dont want the footer to scroll with my content. :) I have looked at suggestions online, however the solutions either make my footer have a full windows space above it even if there is content or it stays at the bottom of my page but overlaps the content. I am guessing there is something in my code that is conflicting with the solutions online, but I have no idea how to fix it to make it work. Any help would be appreciated :)

I have pasted the HTML & CSS below.

<!DOCTYPE html>
<html>

<head>
<script type="text/javascript" src="scripts.js"></script>
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
<title>Login To Website</title>
</head>

<body>

<header>
<div class="headerwrapper">
<div class="wrapper">
<ul class="nav">
<li><a class="nav-link-left" href="">Home</a></li>
<li class="right-nav"><a class="nav-link-right" href="">Log In</a></li>
<li class="right-nav"><a class="nav-link-right" href="">Register</a></li>
</ul>
</div>
</div>
</header>

<content>
<div class="wrapper">
<div class="row">

<div class="col-6">

<form id="form-register">

<h1>Login to Brisbane Wifi</h1>
<h5>Login to leave reviews for your favourite Brisbane hotspots.</h5>

<input type="text" name="username" class="formBox" placeholder="Username" required><br>
<input type="password" name="typePassword" id="firstpassword" class="formBox" placeholder="Password" required />

<br><br><button type="submit" value="Submit" class="signupButton" >Sign In</button><br>
</form>

<div class="login-border">
<p class="review-details rating-center">New User?</p>
<button type="submit" value="Submit" class="signupButton smaller-button" >Register</button><br>

</div>

</div>

<div class="col-6">
<img src="images/reciever.png" alt="reciever" class="recieve-image">
</div>
</div>
</div>
</content>


<footer>
<div class="wrapper">
<div class="row">
<img src="images/wifiIcon.png" alt="Wifi Icon" class="footer-icon" >
</div>
<div class="row">
<div class="col-4">
<a class="footer-link-left" href="">Home</a>
</div>
<div class="col-4">
<a class="footer-link-center" href="">Sign Up</a>
</div>
<div class="col-4">
<a class="footer-link-right" href="">Log In</a>
</div>
</div>
</div>
</div>
<div class="footer-bottom-bar">
<div class="wrapper">
<p class="footer-text">CAB230 - WEBCOMPUTING</p>
</div>
</div>
</footer>
</div>

</body>
</html>

AND THE CSS IS...

* {
    box-sizing: border-box;
}

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

body {
   background-color: #FFFFFF;
   font-family: Helvetica Neue,Helvetica,Arial,sans-serif;
   font-size: 14px;
   min-width: 280px;
   box-sizing: border-box;
}

h1 {
   font-size: 20px;
   font-weight: 700;
   color: #72a3de;
   text-align: center;
}

h2 {
   font-size: 18px;
   font-weight: 700;
   color: #72a3de;
}

h3 {
   font-size: 16px;
   color: #3d5676;
}

h4 {
   font-size: 14px;
   font-weight: 700;
   color: #000000;

}

h5 {
   font-size: 12px;
   color: #3d5676;
   text-align: center;
}

h6 {
   font-size: 12px;
   font-weight: 700;
   color: #3d5676;
   text-decoration: underline;
}

p {
   font-size: 14px;
   color: #000000;
}

.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}

[class*="col-"] {
    float: left;
    padding: 15px;
   border: 1px solid red;
}

.row::after {
    content: "";
    clear: both;
    display: table;
}

header {
   width:100%;
   position: relative;
}

.headerwrapper {
   background-color: #72a3de;
}

.wrapper {
   width:80%;
   margin-left: auto;
   margin-right: auto;
}

.nav-home {
   list-style-type: none;
   margin: 0px;
   padding: 30px;
}

.nav-home li{
   display: inline;
}

.nav-home li.right-nav-home{
   float:right;
}

.nav-home li a{
   display: inline;
}

.nav-home a.nav-link-home-right {
   border-style: solid;
   border-width:2px;
   border-color: #ffffff;
   border-radius: 3px;
}

.nav-home a:hover.nav-link-home-right {
   background-color: #ffffff;
   color: #000000;
}

.nav-home a:hover.nav-link-home-left {
   border-bottom-style: solid;
   border-width: 4px;
   border-color: #ffffff;
}

.nav {
   list-style-type: none;
   margin: auto;
   padding: 30px;
   background-color: #72a3de;
}

.nav li{
   display: inline;
}

.nav li a{
   display: inline;
}

[class*="nav-link-"] {
   height: 40px;
   margin-left: 10px;
   margin-right: 10px;
   padding-top:8px;
   padding-left: 20px;
   padding-right: 20px;
   padding-bottom:8px;
   text-align: center;  
   font-size: 11pt;
   font-weight: bold;
   color: white;
   text-decoration:none;
}

.nav a.nav-link-right {
   border-style: solid;
   border-width:2px;
   border-color: #5b83b2;
   border-radius: 3px;
   background-color: #5b83b2;
}

.nav a:hover.nav-link-right {
   background-color: #4b6b92;
   border-color: #4b6b92;
}

.nav li.right-nav {
   float:right;
}

.nav a:hover.nav-link-left {
   border-bottom-style: solid;
   border-width: 4px;
   border-color: #4b6b92;
}

#form-register {
   width: 100%;
   display: block;
   text-align: center;
}

[class*="formBox"] {
   border-radius: 5px;
   font-family: Helvetica Neue,Helvetica,Arial,sans-serif;
   font-size: 14px;
   padding-left: 8px;
   margin:1%;
   line-height: 2em;
   border: 1px solid #cccccc;
}

.formBox {
   width:92%;
}

.formBoxes {
   width: 46%;
   margin:auto;
}
  
.formSelect {
   width:92%;
   border-radius: 5px;
   font-family: Helvetica Neue,Helvetica,Arial,sans-serif;
   font-size: 14px;
   padding-left: 5px;
   padding-top: 5px;
   padding-bottom: 5px;
   border: 1px solid #cccccc;
   margin:1%;
   color: #666666;
}

#genderOption {
   color: #666666;
   margin:1%;
}
  
#optionalGender {
   color: #666666;
   font-size: 12px;
   margin:1%;
}

.radioLabels {
   color: #666666;
   font-size: 12px;
}

.updates {
   color: #666666;
   padding-left: 5px;
   font-size: 12px;
}

.signupButton {
   width:92%;
   border-radius: 5px;
   font-size: 16px;
   font-family: Helvetica Neue,Helvetica,Arial,sans-serif;
   margin:1%;
   color: #ffffff;
   background: linear-gradient(to bottom right, #5b83b2, #3d5676);
   font-weight: 700;
   height: 50px;
   border-color: transparent;
   box-shadow: 2px 2px 4px #cccccc;
   margin-bottom: 30px;
}

.signupButton:hover {
   background: linear-gradient(to bottom right, #3d5676, #2b3e54);
}

.commsImage {
   height: 60%;
   width: 60%;
   display: block;
    margin-left: auto;
    margin-right: auto;
   margin-top: 145px;
   margin-bottom: 145px;
}

footer {
   background-color: #72a3de;
   padding-top: 20px;
   width:100%;  
    bottom: 0;
}

.footer-icon {
   width: 5%;
   height: 5%;
   margin-left: auto;
   margin-right: auto;
   display: block;
}

.footer-link-left {
   text-align: right;
}

.footer-link-center {
   text-align: center;
}

.footer-link-right {
   text-align: left;
}

[class*="footer-link-"] {
   text-decoration:none;
   display: block;
   color: white;
   font-weight: 700;
   font-size: 15px;
}

[class*="footer-link-"]:hover {
   text-decoration:underline;
   color: #3d5676;
}

.footer-bottom-bar {
   background-color: #3d5676;
   bottom: 0;
   left:0;
}

.footer-text {
   padding: 5px;
   font-size: 12px;
   text-align: center;
   color: white;
}

.result-numbers {
   font-size: 12px;
   font-weight: 700;
}

.sort-right {
   text-align: right;
}

.sort-text {
   font-size: 12px;
   font-weight: 700;
   display: inline-block;
}

#sort-by {
   width: 40%;
   display: inline-block;
}

.results-box {
   background-color: #f2f2f2;
   box-shadow: 1px 2px 4px #888888;
   margin-top: 20px;
   margin-bottom: 20px;
}

.excerpt {
   font-size: 12px;
   font-style: italic;
   font-weight: 100;
   color: #595959;
}

.excerpt-title {
   font-size: 12px;
   font-weight: 700;
}

.result-address {
   font-weight: 100;
}

.results-rating {
   text-align: center;
   margin-top: 21px;
}

.results-margin {
   margin-bottom: 10px;
}

.item-margins {
   padding-top: 19px;
   padding-bottom: 18px;
}

.results-border {
   border-left: 1px solid #d9d9d9;
}

.center-map {
   text-align:right;
}

.checked {
    color: #FFD700;
}

.rating-center {
   text-align: center;
}

.rating {
   border: none;
   display: inline-block;
}

.rating > input { display: none; }
.rating > label:before {
   margin: 5px;
   font-size: 1.2em;
   font-family: FontAwesome;
   display: inline-block;
   content: " 005";
}

.rating > label {
   color: #000000;
   float: right;
}

/***** CSS Magic to Highlight Stars on Hover *****/

.rating > input:checked ~ label, /* show gold star when clicked */
.rating:not(:checked) > label:hover, /* hover current star */
.rating:not(:checked) > label:hover ~ label { color: #FFD700; } /* hover previous stars in list */

.rating > input:checked + label:hover, /* hover current star when changing rating */
.rating > input:checked ~ label:hover,
.rating > label:hover ~ input:checked ~ label, /* lighten current selection */
.rating > input:checked ~ label:hover ~ label { color: #FFED85; }

.review-button {
   width: 98%;
   font-size: 14px;
   height: 35px;
   margin-bottom: 6px;
}

.review-bottom-border {
   border-bottom: 1px solid #d9d9d9;
}

.review-details {
   font-size: 13px;
   color: #808080;
   font-style: italic;
   font-weight: 100;
}

.login-border {
   border-top: 1px solid #d9d9d9;
   text-align: center;
   margin-top: 30px;
   margin-bottom: 40px;
   padding-top: 20px;
}

.smaller-button {
   width: 30%;
   font-size: 14px;
   height: 35px;
   margin-bottom: 6px;
}

.recieve-image {
   height: 50%;
   width: 50%;
   display: block;
    margin-left: auto;
    margin-right: auto;
   margin-top: 92px;
   margin-bottom: 92px;
}

@media only screen and (max-width: 1024px) {
    /* For tablets: */
    [class*="col-"] {
    width: 100%;
   }
  
   .commsImage {
       display: none;
   }
  
   .recieve-image {
       display: none;
   }
  
   [class*="footer-link-"] {
       text-align: center;
   }
  
   .result-numbers {
       text-align: center;
   }
  
   .sort-right{
       text-align: center;
   }
  
   .results-border {
       border-left: none;
       border-top: 1px solid #d9d9d9;
   }
  
   .hide-map {
       display:none;
   }
}

@media only screen and (max-width: 768px) {
    /* For mobile phones: */
    [class*="col-"] {
        width: 100%;
    }
  
   .footer-icon {
       width: 10%;
       height: 10%;
   }
  
   .wrapper {
       width: 90%;
   }
  
}

@media only screen and (max-width: 321px) {
   /* For mobile phones: Portrait*/
   .footer-icon {
       display: none;
   }
  
   .wrapper {
       width: 100%;
   }
}

Explanation / Answer

Solution : Comment for any doubt

Two modifications:

1. Add padding to the body at bottom. Adjust padding according to the height of your footer.

padding-bottom : 160px;

2. Make footer fixed.

position : fixed;

Modified CSS:

* {

    box-sizing: border-box;

}

html, body {

   padding:0;

   margin:0;

}

body {

   background-color: #FFFFFF;

   font-family: Helvetica Neue,Helvetica,Arial,sans-serif;

   font-size: 14px;

   min-width: 280px;

   box-sizing: border-box;

   margin-bottom: 160px;

}

h1 {

   font-size: 20px;

   font-weight: 700;

   color: #72a3de;

   text-align: center;

}

h2 {

   font-size: 18px;

   font-weight: 700;

   color: #72a3de;

}

h3 {

   font-size: 16px;

   color: #3d5676;

}

h4 {

   font-size: 14px;

   font-weight: 700;

   color: #000000;

}

h5 {

   font-size: 12px;

   color: #3d5676;

   text-align: center;

}

h6 {

   font-size: 12px;

   font-weight: 700;

   color: #3d5676;

   text-decoration: underline;

}

p {

   font-size: 14px;

   color: #000000;

}

.col-1 {width: 8.33%;}

.col-2 {width: 16.66%;}

.col-3 {width: 25%;}

.col-4 {width: 33.33%;}

.col-5 {width: 41.66%;}

.col-6 {width: 50%;}

.col-7 {width: 58.33%;}

.col-8 {width: 66.66%;}

.col-9 {width: 75%;}

.col-10 {width: 83.33%;}

.col-11 {width: 91.66%;}

.col-12 {width: 100%;}

[class*="col-"] {

    float: left;

    padding: 15px;

   border: 1px solid red;

}

.row::after {

    content: "";

    clear: both;

    display: table;

}

header {

   width:100%;

   position: relative;

}

.headerwrapper {

   background-color: #72a3de;

}

.wrapper {

   width:80%;

   margin-left: auto;

   margin-right: auto;

}

.nav-home {

   list-style-type: none;

   margin: 0px;

   padding: 30px;

}

.nav-home li{

   display: inline;

}

.nav-home li.right-nav-home{

   float:right;

}

.nav-home li a{

   display: inline;

}

.nav-home a.nav-link-home-right {

   border-style: solid;

   border-width:2px;

   border-color: #ffffff;

   border-radius: 3px;

}

.nav-home a:hover.nav-link-home-right {

   background-color: #ffffff;

   color: #000000;

}

.nav-home a:hover.nav-link-home-left {

   border-bottom-style: solid;

   border-width: 4px;

   border-color: #ffffff;

}

.nav {

   list-style-type: none;

   margin: auto;

   padding: 30px;

   background-color: #72a3de;

}

.nav li{

   display: inline;

}

.nav li a{

   display: inline;

}

[class*="nav-link-"] {

   height: 40px;

   margin-left: 10px;

   margin-right: 10px;

   padding-top:8px;

   padding-left: 20px;

   padding-right: 20px;

   padding-bottom:8px;

   text-align: center;

   font-size: 11pt;

   font-weight: bold;

   color: white;

   text-decoration:none;

}

.nav a.nav-link-right {

   border-style: solid;

   border-width:2px;

   border-color: #5b83b2;

   border-radius: 3px;

   background-color: #5b83b2;

}

.nav a:hover.nav-link-right {

   background-color: #4b6b92;

   border-color: #4b6b92;

}

.nav li.right-nav {

   float:right;

}

.nav a:hover.nav-link-left {

   border-bottom-style: solid;

   border-width: 4px;

   border-color: #4b6b92;

}

#form-register {

   width: 100%;

   display: block;

   text-align: center;

}

[class*="formBox"] {

   border-radius: 5px;

   font-family: Helvetica Neue,Helvetica,Arial,sans-serif;

   font-size: 14px;

   padding-left: 8px;

   margin:1%;

   line-height: 2em;

   border: 1px solid #cccccc;

}

.formBox {

   width:92%;

}

.formBoxes {

   width: 46%;

   margin:auto;

}

.formSelect {

   width:92%;

   border-radius: 5px;

   font-family: Helvetica Neue,Helvetica,Arial,sans-serif;

   font-size: 14px;

   padding-left: 5px;

   padding-top: 5px;

   padding-bottom: 5px;

   border: 1px solid #cccccc;

   margin:1%;

   color: #666666;

}

#genderOption {

   color: #666666;

   margin:1%;

}

#optionalGender {

   color: #666666;

   font-size: 12px;

   margin:1%;

}

.radioLabels {

   color: #666666;

   font-size: 12px;

}

.updates {

   color: #666666;

   padding-left: 5px;

   font-size: 12px;

}

.signupButton {

   width:92%;

   border-radius: 5px;

   font-size: 16px;

   font-family: Helvetica Neue,Helvetica,Arial,sans-serif;

   margin:1%;

   color: #ffffff;

   background: linear-gradient(to bottom right, #5b83b2, #3d5676);

   font-weight: 700;

   height: 50px;

   border-color: transparent;

   box-shadow: 2px 2px 4px #cccccc;

   margin-bottom: 30px;

}

.signupButton:hover {

   background: linear-gradient(to bottom right, #3d5676, #2b3e54);

}

.commsImage {

   height: 60%;

   width: 60%;

   display: block;

    margin-left: auto;

    margin-right: auto;

   margin-top: 145px;

   margin-bottom: 145px;

}

footer {

   background-color: #72a3de;

   padding-top: 20px;

   width:100%;

    bottom: 0;

                position : fixed;

}

.footer-icon {

   width: 5%;

   height: 5%;

   margin-left: auto;

   margin-right: auto;

   display: block;

}

.footer-link-left {

   text-align: right;

}

.footer-link-center {

   text-align: center;

}

.footer-link-right {

   text-align: left;

}

[class*="footer-link-"] {

   text-decoration:none;

   display: block;

   color: white;

   font-weight: 700;

   font-size: 15px;

}

[class*="footer-link-"]:hover {

   text-decoration:underline;

   color: #3d5676;

}

.footer-bottom-bar {

   background-color: #3d5676;

   bottom: 0;

   left:0;

}

.footer-text {

   padding: 5px;

   font-size: 12px;

   text-align: center;

   color: white;

}

.result-numbers {

   font-size: 12px;

   font-weight: 700;

}

.sort-right {

   text-align: right;

}

.sort-text {

   font-size: 12px;

   font-weight: 700;

   display: inline-block;

}

#sort-by {

   width: 40%;

   display: inline-block;

}

.results-box {

   background-color: #f2f2f2;

   box-shadow: 1px 2px 4px #888888;

   margin-top: 20px;

   margin-bottom: 20px;

}

.excerpt {

   font-size: 12px;

   font-style: italic;

   font-weight: 100;

   color: #595959;

}

.excerpt-title {

   font-size: 12px;

   font-weight: 700;

}

.result-address {

   font-weight: 100;

}

.results-rating {

   text-align: center;

   margin-top: 21px;

}

.results-margin {

   margin-bottom: 10px;

}

.item-margins {

   padding-top: 19px;

   padding-bottom: 18px;

}

.results-border {

   border-left: 1px solid #d9d9d9;

}

.center-map {

   text-align:right;

}

.checked {

    color: #FFD700;

}

.rating-center {

   text-align: center;

}

.rating {

   border: none;

   display: inline-block;

}

.rating > input { display: none; }

.rating > label:before {

   margin: 5px;

   font-size: 1.2em;

   font-family: FontAwesome;

   display: inline-block;

   content: " 005";

}

.rating > label {

   color: #000000;

   float: right;

}

/***** CSS Magic to Highlight Stars on Hover *****/

.rating > input:checked ~ label, /* show gold star when clicked */

.rating:not(:checked) > label:hover, /* hover current star */

.rating:not(:checked) > label:hover ~ label { color: #FFD700; } /* hover previous stars in list */

.rating > input:checked + label:hover, /* hover current star when changing rating */

.rating > input:checked ~ label:hover,

.rating > label:hover ~ input:checked ~ label, /* lighten current selection */

.rating > input:checked ~ label:hover ~ label { color: #FFED85; }

.review-button {

   width: 98%;

   font-size: 14px;

   height: 35px;

   margin-bottom: 6px;

}

.review-bottom-border {

   border-bottom: 1px solid #d9d9d9;

}

.review-details {

   font-size: 13px;

   color: #808080;

   font-style: italic;

   font-weight: 100;

}

.login-border {

   border-top: 1px solid #d9d9d9;

   text-align: center;

   margin-top: 30px;

   margin-bottom: 40px;

   padding-top: 20px;

}

.smaller-button {

   width: 30%;

   font-size: 14px;

   height: 35px;

   margin-bottom: 6px;

}

.recieve-image {

   height: 50%;

   width: 50%;

   display: block;

    margin-left: auto;

    margin-right: auto;

   margin-top: 92px;

   margin-bottom: 92px;

}

@media only screen and (max-width: 1024px) {

    /* For tablets: */

    [class*="col-"] {

    width: 100%;

   }

   .commsImage {

       display: none;

   }

   .recieve-image {

       display: none;

   }

   [class*="footer-link-"] {

       text-align: center;

   }

   .result-numbers {

       text-align: center;

   }

   .sort-right{

       text-align: center;

   }

   .results-border {

       border-left: none;

       border-top: 1px solid #d9d9d9;

   }

   .hide-map {

       display:none;

   }

}

@media only screen and (max-width: 768px) {

    /* For mobile phones: */

    [class*="col-"] {

        width: 100%;

    }

   .footer-icon {

       width: 10%;

       height: 10%;

   }

   .wrapper {

       width: 90%;

   }

}

@media only screen and (max-width: 321px) {

   /* For mobile phones: Portrait*/

   .footer-icon {

       display: none;

   }

   .wrapper {

       width: 100%;

   }

}