CSS: How to have to divs side by side with height 100%?

后端 未结 4 2024
甜味超标
甜味超标 2021-01-03 09:48

I am trying to create a two div\'s side by side that fill my screen 100%. The left div contains some menu and the right the content. Here\'s the code I have at the moment:

相关标签:
4条回答
  • 2021-01-03 10:20

    Does this work for what your wanting?:

    http://jsfiddle.net/Sgfnm/

    <div>
        <div class="table">
            <div class="innerLeft">
                <span>Left Column</Span>
            </div>
    
            <div class="innerRight">
                <span>Content with Iframe</span>
            </div>
        </div>
    </div>
    
    
    .table {
    
        display: block;
    
    }
    
    .innerLeft {
    
        display: block;
        width: 160px;    
    
        background-color: lightblue;
        color: black;
        float:left;
    }
    
    .innerRight {
    
        display: block;
        width: 100%;
        vertical-align: top;
    
        background-color: red;
        color: white;
    }
    
    0 讨论(0)
  • 2021-01-03 10:30

    I have ran in the same problem so many times, until I found this: http://matthewjamestaylor.com/blog/equal-height-columns-cross-browser-css-no-hacks

    It is a valid CSS solution for making your colums share the height. Then both will be the height of the largest column.

    If you want to make your colums fill the whole screen you could use something like

    .innerLeft {
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        width: 50%; 
    }
    
    .innerRight {
        position: absolute;
        left: 50%;
        top: 0;
        bottom: 0;
        right: 0; 
    }
    
    0 讨论(0)
  • 2021-01-03 10:31

    Note that this is css3 and wont work for old browsers.

    css3

    <style>
    html, body{height:100%;padding:0;margin:0;}
            div.table, div.table *{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;}
             div.table{width:100%;height:100%;}
              div.table div{border:1px solid black;width:50%;height:100%;float:left;}
    </style>
    

    html:

    <div class="table">
        <div class="innerLeft">
            <span>Left Column</Span>
        </div>
    
        <div class="innerRight">
            <span>Content with Iframe</span>
        </div>
    </table>
    

    Page:

    <!DOCTYPE html>
    <html>
        <head>
            <style>
                html, body {
                    height:100%;
                    padding:0;
                    margin:0;
                }
                div.table, div.table * {
                    box-sizing:border-box;
                    -moz-box-sizing:border-box;
                    -webkit-box-sizing:border-box;
                }
                div.table {
                    width:100%;
                    height:100%;
                }
                div.table div {
                    border:1px solid black;
                    width:50%;
                    height:100%;
                    float:left;
                }
            </style>
        </head>
        <body>
            <div class="table">
                <div class="innerLeft"> <span>Left Column</span>
    
                </div>
                <div class="innerRight"> <span>Content with Iframe</span>
    
                </div>
            </div>
        </body>
    </html>
    

    The above code would create two columns whenever you would like to fill the whole screen or a section.

    The following code could be used to only fill the whole screen (containers behaves odd when using position absolute, there is workarounds though):

    <!DOCTYPE html>
    <html>
    
        <head>
            <style>
                html, body {
                    height:100%;
                    padding:0;
                    margin:0;
                }
                #left {
                    width:50%;
                    height:100%;
                    position:absolute;
                    top:0;
                    left:0;
                    background:red;
                }
                #right {
                    width:50%;
                    height:100%;
                    position:absolute;
                    top:0;
                    right:0;
                    background:blue;
                }
            </style>
        </head>
    
        <body>
            <div id="left"></div>
            <div id="right"></div>
        </body>
    
    </html>
    
    0 讨论(0)
  • 2021-01-03 10:32

    Shortest answear is to use proper table, min-height can also help you, but not all browsers respect it.

    0 讨论(0)
提交回复
热议问题