Reputation: 178
Im trying to make my footer to be at the end of the page, so I'm using position:absolute and bottom:0 to do this. The problem is the background color will not be extended to fit the screen, so I tried using width:100% but now it has extra pixels
this is the example i created http://jsfiddle.net/SRuyG/2/ (sorry it's a bit messy, i'm just starting to learn css)
I also tried the sticky footer from some tutorials i found but it's not working either. So how exactly can I set the footer to the bottom of the page and the background fits the screen size?
Thank you
CSS:
html, body {
margin: 0;
padding: 0;
}
body {
font: 13px/22px Helvetica, Arial, sans-serif;
background: #f0f0f0;
}
.contentWrapper{
min-height: 100%;
margin-bottom: -142px;
}
.contentWrapper:after {
content: "";
display: block;
height: 142px;
}
nav {
background: #222;
color: #fff;
list-style: none;
font-size: 1.2em;
padding: 10px 20px;
box-shadow: 0px 0px 4px 4px #888888;
}
#navBar li{
display:inline;
}
#navBar li a{
color: #fff;
text-decoration: none;
padding: 25px;
}
#navBar li a:hover{
background:#fff;
color: #222;
text-decoration: none;
padding: 25px;
}
footer {
position:absolute;
background: #222;
color: #fff;
list-style: none;
font-size: 1.2em;
padding: 10px 20px;
bottom:0;
width: 100%;
}
HTML:
<body>
<nav>
<ul id='navBar'>
<li><a href="#">link 1</a></li>
<li><a href="#">link 2</a></li>
<li><a href="#">link 3</a></li>
</ul>
</nav>
<div id="contentWrapper">
<section id="intro">
<header>
<h2>Intro</h2>
</header>
<p>Paragraph goes here, long and long paragraph, blah blah blah. Paragraph goes here, long and long paragraph, blah blah blah.
Paragraph goes here, long and long paragraph, blah blah blah. Paragraph goes here, long and long paragraph, blah blah blah.
Paragraph goes here, long and long paragraph, blah blah blah. Paragraph goes here, long and long paragraph, blah blah blah.
</p>
</section>
</div>
<footer>
<section id="about">
<header>
<h3>Footer</h3>
</header>
<p>some text here. </p>
</section>
</footer>
</body>
Upvotes: 10
Views: 61651
Reputation: 370
From below css I have removed the padding property
footer {
position:absolute;
background: #222;
color: #fff;
list-style: none;
font-size: 1.2em;
bottom:0;
width: 100%;
}
and add this thing in ur css
footer section
{
margin:10px 20px;
}
Upvotes: 1
Reputation: 59859
Try using box-sizing: border-box;
to constrain the border and padding areas to the width of the <footer>
- as the padding: 10px 20px
rule is what's causing the scroll bar to appear.
footer {
position:absolute;
background: #222;
color: #fff;
list-style: none;
font-size: 1.2em;
padding: 10px 20px;
bottom:0;
width: 100%;
box-sizing: border-box;
}
Upvotes: 8
Reputation: 3603
try this..
remove these rules from the footer..you'll be fine
position:absolute;
bottom:0;
width:100%;
Upvotes: 1
Reputation: 1889
you can remove padding: 10px 20px;
from footer and add footer section{margin:10px 20px}
Upvotes: 3
Reputation: 2393
Your footer is within the body, which is within the HTML. Since you haven't declared a width, it isn't going to expand any wider than it needs to. For your specific HTML, you should do something like this with your CSS:
body, html {
width: 100%; // or body { width: 960px; } if you're using a fixed width
}
footer {
width: 100%;
}
Ultimately, remember that any width set in a percentage is (almost) always going to be in comparison to the parent. 100% of a 50% parent is still 50%. 50% of a 75% parent is only going to yield 37.5% of the total viewport width.
Upvotes: 5