Scroll inside of a fixed sidebar

CssScroll

Css Problem Overview


I have a fixed sidebar on the left of my site with content that has too much content to display on the screen. How can I make that content scrollable while still allowing the right side to be scrollable?

I would think that a simple overflow-y: scroll; would suffice. It seems like I need to have a max-height on the sidebar, but setting that max-height to 100% does nothing. I'm sure this is a simple code pattern, but alas, my CSS skills have deserted me today.

Simple example here: http://jsfiddle.net/tvysB/1/

Css Solutions


Solution 1 - Css

Set the top and bottom to 0, so that the sidebar is exactly the same height as the viewport:

#leftCol {
    position: fixed;
    width: 150px;
    overflow-y: scroll;
    top: 0;
    bottom: 0;
}

Here's your fiddle: http://jsfiddle.net/tvysB/2/

Solution 2 - Css

I had this same issue and fixed it using:

.WhateverYourNavIs {
      max-height: calc(100vh - 9rem);
      overflow-y: auto;
 }

This sets the max height for your nav in a way that is responsive to the height of the users browser and then gives it a scroll when it needs it.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRyan MadsenView Question on Stackoverflow
Solution 1 - CssJoseph SilberView Answer on Stackoverflow
Solution 2 - CssMacView Answer on Stackoverflow