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/
If you see the Qode Sticky Sidebar widget, then you can create a sticky sidebar simply by placing that widget into the widget area of your choice. Click on the arrow in the right corner to open a dropdown menu and then select Sidebar as the area to which you wish to add the widget.
For vertical scrollable bar use the x and y axis. Set the overflow-x:hidden; and overflow-y:auto; that will automatically hide the horizontal scroll bar and present only vertical scrollbar. Here the scroll div will be vertically scrollable.
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/
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.
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