Treehouse

Overflow:Auto – Height Control with Scrollbars on Page Elements

By on  

Many of the web designs my designer creates are very image-heavy. These designs are best fit for websites that wont have loads of content like restaurants, photographers, and graphics designers -- you know, sites where a picture says more than a thousand words. It's important on these types of sites to be able to control the height of the content areas so that the content DIV doesn't grow too high. The way I can do that is by using CSS' overflow property.

CSS Overflow

The CSS

#content { overflow:auto; height:400px; }

Overflow:Auto allows the customer to place as much content as they'd like within the content area without adversely affecting the page design. While I do everything I can to explain/convince customers that they should prune content and be concise, once the website is in their hands I can't do much about it.

What have you used this type of overflow for? Share!

ydkjs-6.png

Recent Features

  • CSS Gradients

    With CSS border-radius, I showed you how CSS can bridge the gap between design and development by adding rounded corners to elements.  CSS gradients are another step in that direction.  Now that CSS gradients are supported in Internet...

  • Create a CSS Flipping Animation

    CSS animations are a lot of fun; the beauty of them is that through many simple properties, you can create anything from an elegant fade in to a WTF-Pixar-would-be-proud effect. One CSS effect somewhere in between is...

  • Write Better JavaScript with Promises

    You've probably heard the talk around the water cooler about how promises are the future. All of the cool kids are using them, but you don't see what makes them so special. Can't you just use a callback? What's the...

Incredible Demos

  • MooTools CountDown Plugin

    There are numerous websites around the internet, RapidShare for example, that make you wait an allotted amount of time before presenting you with your reward. Using MooTools, I've created a CountDown plugin that allows you to easily implement a...

  • Create Snook-Style Navigation Using MooTools

    Jonathan Snook debuted a great tutorial last September detailing how you can use an image and a few jQuery techniques to create a slick mouseover effect. I revisited his article and ported its two most impressive effects...

  • Degradable SELECT onChange

    Whenever I go to Google Analytics I notice a slight flicker in the dropdown list area. I see a button appear for the shortest amount of time and the poof! Gone. What that tells me is that...

Discussion

  1. my solution:
    i placed a div at the end of the body content with the follow attributes:

    position:absolute;
    top:0px;
    bottom:-1px;
    width:1em;
    z-index:-1,

    ok – the scrollbar is allways showing, not directly at the div element, but it prevents bad “jumping” effects switching between passed size content and overflow content.

  2. I’ve used the overflow to keep a fixed header and footer always visible. Kinda like having frames without using frames. I wanted to keep my options open wrt a footer with ‘ticker tape” content. I needed a “main body content that a user could scroll through.

  3. The correct use of overflow I think, is overflow:auto; so it only adds horizontal bars when needed. overflow:scroll; always adds scrollbars, and I don’t get the point of that.

  4. @Nacho: Thank you for your thoughts and I’ve updated my article. I use “scroll” sometimes because I know the customer will have that much content. After further consideration, you’re suggestion is probably the safer bet..

  5. I use overflow:hidden alot!

  6. overflow:auto; is a life saver for sure!

  7. Jeff Hartman

    To clear floats. That’s it.

    I dislike scrollable elements within a browser window.

  8. I’m currently using stroller for an online application. The stroller is used specifically for tables contain a lot of data and content after this table is also important and so this way user can view both table and other parts of that page.

    @david I have a question.
    I’m using scroll for the table content which always have different size of data. So if I set overflow height to lets say 200px and actual data fills 100px and then there is empty space of 100px under the table because div overflow is still there but no stroller. Is there a way with JavaScript to set some sort of max-height so if content is not filling 200px there won’t be any extra space. Sorry if this is confusing, kind of hard to describe without visual example. If you have any thoughts it would be great :-)

  9. addition: data is from database and so it can not be predicted the amount of data present there.

  10. “Overflow: auto;” is a good solution for confining content space. But if you’re using animations of any sort (think of a Coda slider), the scrollbars don’t play nice. And scrollbars usually don’t segue with the rest of the content and design.

    For aesthetic purposes, when I do control my DIV dimensions and use “overflow: auto;”, I also style the scrollbars (w/Mootools or w/o Moo).

    Here’s a Moo CSS-scrollbar script: http://solutoire.com/2008/03/10/mootools-css-styled-scrollbar/

    Personally, I style my scrollbars with a non-Moo script, and dynamically load the scrollbar script from my main JS file using Assets.

  11. how to make the iframe as fully content on the page… i have set height=”100%” but the frame is still in scroll box..

  12. I think we should use max-height:400px; and not height:400px; so that if the content-div height is smaller than 400px we won’t have a huge blank space !!!

  13. I love that solution – the only problem is that 3 out of 3 of my ipad browsers don’t support that solution and so dont show a scroller, only a box of text in the size i dtermined :( i guess nothing is perfect

  14. [...] Overflow:Auto – Height Control with Scrollbars on Page Elements [...]

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!

Use Code Editor