JSbin here for visuals and code.
Left sidebar, full height, fixed position, content overflows that needs to be accessible WITHOUT scrollbars (that means no overflow: scroll
). I really don't want to do this in Javascript.
At one point months ago, I accomplished this in CSS with overflow: hidden
and something else and now I can't find the code or remember how it was done. And Google is useless for this for some reason. This sidebar has content to the right of it on my site that continues down the page. The bar itself has more than fits vertically on the screen.
I need to be able to scroll down this object, whether it's fixed or absolute, and it must span the height of the page all the way down. Scrolling main content and the sidebar are independent. So far, even with setting to absolute, the wrapper will stop way short of the page bottom.
I've tried every combination of position
, float
, overflow
, height
/max-height
, top
, bottom
, left
and display
that I can think of. Tried lots of other stuff too with no luck.
Any help is greatly appreciated.
CSS:
#left-wrap {
position: fixed;
top: 0;
left: 0;
bottom: 0;
z-index: 3;
max-width: 24em;
height: 100%;
overflow: hidden;
background-color: rgba(26,26,26,1);
}
#left-bar {
max-width: 100%;
max-height: none;
position: relative;
}
#left-bar.sidebars .block {
padding: 5%;
border-right: none;
margin: 5%;
background-color: rgba(255,255,238,0.4);
margin-bottom: 1.5em;
font-size: 0.9em;
overflow: hidden;
}
.sidebars .block ul {
margin: 0;
padding: 0;
list-style: none;
}
.sidebars h2 {
padding: 0;
margin: 5% 10% 0;
font-size: 1.75em;
text-transform: lowercase;
font-weight: 400;
text-align: right;
/*border-bottom: 1px dashed #9c561b;
color: #9c561b;
text-shadow:#130b08 0 1px 0;*/
}
#left-wrap a {
color: #FDC;
}
HTML:
<div id="left-wrap">
<div id="left-bar" class="sidebars">
<div class="block">
<h2>Title One</h2>
<ul class="menu">
<li>Link One</li>
<li>Link Two</li>
<li>Link Twenty-five</li>
<li>Link Seventy</li>
<li>Link One Hundred Fifty-two</li>
<li>Link Zero</li>
</ul>
</div>
<div class="block">
<h2>Title Two</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
</div>
<div class="block">
<h2>Title Three</h2>
<ul class="menu">
<li>Link One</li>
<li>Link Two</li>
<li>Link Twenty-five</li>
<li>Link Seventy</li>
<li>Link One Hundred Fifty-two</li>
<li>Link Zero</li>
</ul>
</div>
<div class="block">
<h2>Title Four</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
</div>
<div class="block">
<h2>Title Five</h2>
<ul class="menu">
<li>Link One</li>
<li>Link Two</li>
<li>Link Twenty-five</li>
<li>Link Seventy</li>
<li>Link One Hundred Fifty-two</li>
<li>Link Zero</li>
</ul>
</div>
<div class="block">
<h2>Title Six</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
</div>
<div class="block">
<h2>Title Seven</h2>
<ul class="menu">
<li>Link One</li>
<li>Link Two</li>
<li>Link Twenty-five</li>
<li>Link Seventy</li>
<li>Link One Hundred Fifty-two</li>
<li>Link Zero</li>
</ul>
</div>
<div class="block">
<h2>Title Eight</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
</div>
</div>
</div>
If you can set the height and width of the parent, left-wrap
, you can do it this way:
#left-wrap {
position: absolute;
top: 0;
left: 0;
bottom: 0; /* Not sure why this is here */
z-index: 3;
max-width: 24em;
max-height: none;
overflow: hidden;
height:100%; /* Needs to be given a height and width as far as I know */
width:1000px; /* They can be whatever dimensions you'd like, 'course */
background-color: rgba(26,26,26,1);
}
#left-bar {
max-width: 100%;
max-height: 100%; /* Prevents it from auto sizing to its content */
position:absolute;
right: -20px; /* Shifts element to the right */
padding-right: 10px; /* Uses padding to move element back into position */
overflow-y: scroll; /* Makes sure that there is a scrollbar */
}
Demo Here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With