滚动条后拉伸布局高度100%

时间:2013-04-10 19:30:31

标签: css

我有一个三列固定页眉/页脚和三列内容布局,当中间DIV溢出时,左右DIV不会伸展到100%高度。

有什么建议吗?另外,您认为布局CSS及其跨浏览器兼容性和整体CSS使用情况如何?

干杯, 大卫

jsFiddle:http://jsfiddle.net/VsTYJ/1/

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Sample Page</title>
        <style type="text/css">
            html 
            {
                height: 100%;
            }
            body 
            {
                margin: 0;
                padding: 0;
                height: 100%;
            } 
            #container-main
            {      
                background: #888888;   
                margin: 0;
                padding: 0;
                font: 1.5em "Trebuchet MS", Helvetica, sans-serif;    
                height: 100%;               
                min-height: 100%;
                min-width: 768px;
            }    
            #container-left, #container-middle, #container-right
            {            
                float: left;
                margin: 0;
                padding: 0;                  
                min-height: 100%;
            }  
            #container-left
            {            
                background: #777777;
                width: 25%;
            } 
            #container-middle
            {            
                background: #999999;
                width: 60%;
            } 
            #container-right
            {            
                background: #777777;
                width: 15%;
            } 
            #container-header 
            { 
                background: #eee; 
                border: 0px solid #666; 
                height: 60px; 
                left: 0; 
                position: fixed; 
                width: 100%; 
                top: 0;  
                padding: 0;                      
            }
            #header-left, #header-middle, #header-right 
            { 
                text-align: center;
                line-height: 60px; 
                margin: 0; 
                padding: 0;
                float: left;                         
            }  
            #header-left
            {  
                background: #999999;
                width: 25%;             
            }  
            #header-middle
            {  
                background: #888888;
                width: 60%;             
            } 
            #header-right
            {  
                background: #999999;
                width: 15%;             
            }                              
            #container-content 
            { 
                margin: 0; 
                overflow: auto; 
                padding: 50px 0 50px 0; 
                width: 100%; 
            }
            #content
            {
            }
            #container-footer 
            { 
                background:#eee; 
                border: 0px solid #666; 
                bottom:0; 
                height:60px; 
                left:0; 
                position:fixed; 
                width:100%; 
            }
            #footer-left, #footer-middle, #footer-right 
            { 
                text-align: center;
                line-height: 60px; 
                margin: 0; 
                float: left;                         
            }  
            #footer-left
            {  
                background: #999999;
                width: 25%;             
            }  
            #footer-middle
            {  
                background: #888888;
                width: 60%;             
            } 
            #footer-right
            {  
                background: #999999;
                width: 15%;             
            }                                                              
        </style>
    </head>
    <body>
        <div id="container-main">
            <div id="container-left">            
                Content 1
            </div>
            <div id="container-middle">
                <div id="container-header">
                    <div id="header-left">
                        Header Left
                    </div>
                    <div id="header-middle">
                        Header Middle
                    </div>
                    <div id="header-right">
                        Header Right
                    </div>
                </div>
                <div id="container-content">
                    <div id="content">
                        <p>
                            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                    
                        </p>
                        <p>
                            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                    
                        </p>
                        <p>
                            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                    
                        </p>
                        <p>
                            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                    
                        </p>
                        <p>
                            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                    
                        </p>
                    </div>
                </div>
                <div id="container-footer">
                    <div id="footer-left">
                        Footer Left
                    </div>
                    <div id="footer-middle">
                        Footer Middle
                    </div>
                    <div id="footer-right">
                        Footer Right
                    </div>
                </div>
            </div>
            <div id="container-right">
                Content 3
            </div>
        </div>
    </body>
    </html>

1 个答案:

答案 0 :(得分:2)

试试这个

小提琴: - http://jsfiddle.net/z837M/

我所做的改变不是用背景包装内容而你可以使用背景大小是你打算稍后放置任何图像,你可以使用100%或覆盖作为其值。使头寸固定,Z-Index:-1

CSS

#container-main
            {      
                background: #888888;   
                -webkit-background-size: 100%;
                -moz-background-size: 100%;
                -o-background-size: 100%;
                background-size: 100%;
                margin: 0;
                padding: 0;
                font: 1.5em "Trebuchet MS", Helvetica, sans-serif;    
                height: auto;               
                min-height: 100%;
                min-width: 100%;
               position:fixed;
               z-index:-1;
            }    

HTML

    
  <div id="container-left">            
        Content 1
    </div>
    <div id="container-middle">
        <div id="container-header">
            <div id="header-left">
                Header Left
            </div>
            <div id="header-middle">
                Header Middle
            </div>
            <div id="header-right">
                Header Right
            </div>
        </div>
        <div id="container-content">
            <div id="content">

                <p>
                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                    
                </p>
                <p>
                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                    
                </p>
                <p>
                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                    
                </p>
                <p>
                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                    
                </p>
                <p>
                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                    
                </p>

            </div>
        </div>
        <div id="container-footer">
            <div id="footer-left">
                Footer Left
            </div>
            <div id="footer-middle">
                Footer Middle
            </div>
            <div id="footer-right">
                Footer Right
            </div>
        </div>
    </div>
    <div id="container-right">
        Content 3
    </div>

更新

使用表格显示使列达到最大高度。由于你有一些固定的元素,它们所在的位置并不重要。 Fiddle

CSS

    div.column {
        display:table-cell;
    }
    div.section {
        display:table-row;
    }   

HTML

  <div id="container-wrapper" class="section">
        <div id="container-left" class="column">
            <div class="container-content">Content 1</div>
        </div>
        <div id="container-middle" class="column">
            <div class="container-content">
                <div id="content">
                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

                </div>
            </div>
        </div>
        <div id="container-right" class="column">Content 3</div>
    </div>