Vee Cee
Vee Cee

Reputation: 45

How to create a static footer in CSS?

I'm having trouble creating a static footer that stays to the bottom of the page. I've tried implementing sticky footer, but when I try it, there is no visible difference. Currently, the footer is scrolling along with the page. I don't know if it's because of my HTML, or other CSS setting, or something I'm just unaware of.

Here is my code and an example of the scrolling footer: https://codepen.io/bobblyhead/pen/yJEdzj

html, body{
    margin: 0px;
    padding: 0px;
    min-height: 100%;
    margin-bottom: 100px;
    clear: both;
    position: relative;
}

.footer{
    position: fixed;
    margin-bottom: 0px;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: #212121; 
    padding: 10px; 
    color: white;
    font-size: .81em;
}
footer div:first-child{
    margin-bottom: 5px;
}
footer .glyphicon{
    margin-right: 5px;
}
footer a:link, footer a:visited, footer a:hover, footer a:active{
    color: white;
}
footer .contacts{
    text-align: left;
}

GettingStarted.html:

<html>
<head>
    <!--[if lt IE 9]>
      <script src="dist/html5shiv.js"></script>
    <![endif]-->
    <link rel="stylesheet" href="login.css">
    <link rel="stylesheet" href="header.css">
    <link rel="stylesheet" href="footer.css">

    <script src="https://use.fontawesome.com/fae6c977ea.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
    <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css" />
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />

    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

    <script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

</head>
<body>
<!--Content-->
<div class = "wrapper">
    <div class="container">
    <h1> Getting Started </h1>
    </div>
    <div class=container>
        <div id="sysReq"><h3> System Requirements </h3>
            <div class= "col-md-12">
                <p> This is a paragraph about system requirements.</p>
            </div>
        </div>
        <div id="install"><h3> Installation </h3>
            <div class= "col-md-12">
                <p> This is a paragraph about installation.</p>
            </div>
        </div>
        <div id="sandbox"><h3> Try it now - API Sandbox </h3>           
            <div class= "col-md-12">
                <p> SANDBOX! </p>
            </div>
        </div>
    </div>
</div>




<!-- FOOTER -->
    <div class="footer">
        <div class="siteContent" style="padding-top:10px;">

            <div style="width:42%; float:left; margin-left: 15px;">
                <span style="font-size:75%;">&copy;Copyright 2016.</span>
                <span style="font-size:75%;">Test.</span>
                <br>
            </div>

            <div style="width:22%; float:left; margin-left: 10px;">
                <span class="glyphicon glyphicon-envelope"></span>&nbsp;&nbsp;<a href="mailto:[email protected]?Subject=Question" target="_top">[email protected]</a><br>
                <span class="glyphicon glyphicon-phone-alt"></span>&nbsp;&nbsp;Americas&nbsp;&nbsp;&nbsp;&nbsp;+x.xxx.xxx.xxxx<br>
                <span class="glyphicon glyphicon-phone-alt"></span>&nbsp;&nbsp;EMEA&nbsp;&nbsp;&nbsp;&nbsp;+xx.xx.xxxx.xxxx
            </div>

            <div style="width:22%; float:left; margin-left: 10px;">
                <br>
                <span class="glyphicon glyphicon-phone-alt"></span>&nbsp;&nbsp;Asia&nbsp;&nbsp;&nbsp;&nbsp;+xxx-xxxx-xxxx<br>
                <span class="glyphicon glyphicon-phone-alt"></span>&nbsp;&nbsp;Japan&nbsp;&nbsp;&nbsp;&nbsp;+xx-x-xxxx-xxxx
            </div>
        </div>
    </div>

    <div class="modal fade" id="selectModal" tabindex="-1" role="dialog" aria-labelledby="Select Columns" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"></div></div></div>
    <div class="modal fade" id="pdfmodal" tabindex="-1" role="dialog"><div class="modal-dialog"><div class="modal-content"></div></div></div>
    <div id="username" class="hidden"></div>

    </div> 

</body>
</html>

UPDATE:

I changed the position: absolute;, and set margin-bottom: -140px; and it seemed to fix the problem on this specific page.

However, on the pages with less content, there is a space between the footer and the bottom. It looks like this

Upvotes: 1

Views: 1926

Answers (3)

Bharat
Bharat

Reputation: 139

You can modify footer style from position:fixed to position:relative. It will solve your problem and just increase padding to feel good.

Upvotes: 1

Santiago Dellepiane
Santiago Dellepiane

Reputation: 28

Try using

.footer {
position:absolute; 
bottom:0px;
}

and use min-height in .wrapper

Upvotes: 1

EmmanuelBeziat
EmmanuelBeziat

Reputation: 734

If I understand what you want (a footer that stay at the bottom of a short page, but grow with it), you can do this with flexbox :

body {
	margin: 0;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-content {
	flex: 1;
}
<div class="page">
  <header class="site-header"></header>

  <main class="site-content"></main>

  <footer class="site-footer"></footer>
</div>

Here are some more solutions (french) : https://www.emmanuelbeziat.com/blog/un-site-qui-prend-toute-la-hauteur-disponible/

Upvotes: 0

Related Questions