3 Column Equalizing

Discussion in 'CSS' started by crazyryan, Nov 17, 2007.

  1. #1
    Can someone help me with achieving 3 column equalizing.

    Basically, I want the background colour on the right column to expand 100% to the bottom, equal to the height of the other biggest column..

    Sorry about the confusing post.

    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <style type="text/css">
    body {
    background: #8FB7D6;
    margin: 0px;
    font: normal 13px tahoma;
    }
    #header {
    background: #293742;
    clear: both;
    height: 40px;
    margin-bottom: 10px;
    color: #fff;
    }
    #container {
    background: #335874;
    width: 912px;
    margin: auto;
    overflow: auto;
    border-left: 4px solid #fff;
    border-right: 4px solid #fff;
    }
    #left {
    padding: 2px;
    width: 180px;
    float: left;
    }
    #middle {
    padding: 2px;
    margin-left: 15px;
    margin-right: 15px;
    width: 400px;
    float: left;
    }
    #right {
    padding: 2px;
    width: 290px;
    float: left;
    background: #072236;
    height: 100%;
    }
    #footer {
    background: #293742;
    clear: both;
    height: 40px;
    color: #fff;
    }
    </style>
    </head>
    
    <body>
    
    <div id="container">
        <div id="header">
        test
        </div>
    
        <div id="left">
        lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum 
        </div>
        
        <div id="middle">
        lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum 
        </div>
        
        <div id="right">
        lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum lipsum 
        </div>
        
        <div id="footer">
            test
        </div>
    </div>
    
    </body>
    </html>
    
    Code (markup):

     
    crazyryan, Nov 17, 2007 IP
  2. soulscratch

    soulscratch Well-Known Member

    Messages:
    964
    Likes Received:
    45
    Best Answers:
    0
    Trophy Points:
    155
  3. crazyryan

    crazyryan Well-Known Member

    Messages:
    3,087
    Likes Received:
    165
    Best Answers:
    0
    Trophy Points:
    175
    #3
    So adding repeat-y to my background attribute...? I just tried that and it didn't work which means it only works with images or it doesn't work at all, probably the first reason.

    Is there a pure css method?
     
    crazyryan, Nov 17, 2007 IP
  4. deathshadow

    deathshadow Acclaimed Member

    Messages:
    9,732
    Likes Received:
    1,999
    Best Answers:
    253
    Trophy Points:
    515
    #4
    repeat-y only works on images - that's what faux columns are, using images to make the column backgrounds - the question becomes did you apply a background, and to what/which elements.

    There's a really ugly one that expands the bottom of each column off the screen, then uses margin-bottom to reduce the flow height... I highly advise against it...

    PureCSS? Simple, use a table... I'm not kidding, it's often less code (despite the wild bullshit claims to the contrary) and if you use table-layout:fixed, it won't have that 'wait for the content to load before starting to render' error either.

    Pretty much though, equal height columns without a table - pure myth. You can fake the appearance of it, but you never actually have it.

    Oh, and before someone pipes in with that HTML 5/CSS 3 bullshit, keep the lip zipped we're talking about stuff we can deploy today, not something that we MIGHT be able to deploy a decade from now. (hell, it's been a decade and CSS2 isn't even CLOSE to properly implemented in anything but Opera and Safari)
     
    deathshadow, Nov 17, 2007 IP
  5. joebert

    joebert Well-Known Member

    Messages:
    2,150
    Likes Received:
    88
    Best Answers:
    0
    Trophy Points:
    145
    #5
    At thenoodleincident.com there's some good examples, /tutorials/box_lesson/boxes.html
    I'd link to it but I think I still have a few days left before I can post links.
     
    joebert, Nov 18, 2007 IP
  6. Crimsonc

    Crimsonc Peon

    Messages:
    616
    Likes Received:
    15
    Best Answers:
    0
    Trophy Points:
    0
    #6
    if you provide a live URL we can asses your problem better. I've had to say this a lot tonight but it's so true. Without SEEING it we can't give you a definitive answer, you might not need faux columns at all.
     
    Crimsonc, Nov 21, 2007 IP
  7. soulscratch

    soulscratch Well-Known Member

    Messages:
    964
    Likes Received:
    45
    Best Answers:
    0
    Trophy Points:
    155
    #7
    How wouldn't he need faux columns? There is no elegant solution to equal height columns.
     
    soulscratch, Nov 21, 2007 IP