Reputation: 6615
I am making a small div on the center of the page which has a footer which is fixed but the div is scroll-able.
According to me there are two ways to do it:
position:fixed
: Fixed position actually work relative to the browser window but I want position relative to my small div position:absolute
: Using bottom:0;
I solved the problem initially but the footer scroll with the div text.HTML:
<div id="wrapper">
<div id="box">
<div id="header">
<h1>Heading</h1>
</div>
<div id="content">
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text
</div>
<div id="footer">
<p>Fooooooooooooooooooooooooooter</p>
</div>
</div>
</div>
CSS:
#wrapper{
width:600px;
height:500px;
border:thin solid #c00;
}
#box {
width:400px;
height:300px;
margin:100px auto;
border:medium dashed #c00;
position:relative;
overflow:auto;
}
#content {
background-color:rgba(0,0,208,0.1);
}
#footer {
position:absolute;
bottom:0px;
width:100%;
height:50px;
background-color:rgba(0,0,0,0.8);
color:#fff;
}
To See: JSfiddle
How to make the footer fixed for this div?
Upvotes: 6
Views: 7977
Reputation: 37179
Solution: inside your outer #wrapper
, create another wrapper for the #box
- see http://jsfiddle.net/thebabydino/6W5uq/30/
You style your box wrapper:
.box-wrap {
width:400px;
height:300px;
margin:100px auto;
position:relative;
}
... you take out the width
, the margin
s and position:relative
for the #box
:
#box {
height:300px;
margin:0;
border:medium dashed #c00;
overflow:auto;
}
... and you take into account the border
s for the #box
when positioning the #footer
.
One more thing: position: fixed
is not relative to a parent, but to the browser window, so it's not the way to go in this case.
Upvotes: 9
Reputation: 196
Instead of using the #footer you need to make certain amendments. Try the following:
In #footer add margin-top:10px; instead of position:absolute; bottom:0px;
define this margin-top to the height you want the footer to be below the "some texts" div. This is happening because the footer is being set to the bottom of the div but as there is more text to come and the overflow is on, it sticks to the bottom of the height of the div rather than the bottom of the content
Upvotes: 1
Reputation: 2017
<div id="wrapper">
<div id='outer_box'>
<div id="box">
<div id="header">
<h1>Heading</h1>
</div>
<div id="content">
{text}
</div>
</div>
<div id="footer">
<p>Fooooooooooooooooooooooooooter</p>
</div>
</div>
</div>
Then add some styles to the elements, as documented here: http://jsfiddle.net/6W5uq/29/
Basically, you make the footer align to the bottom of the outer_box. I've added margin to the content, so you can still see all of it when scrolled down, and a margin to the footer so you can use the scroll bar fully.
Upvotes: 1