实现三栏布局的这三种方式,面试笔试重点,一定掌握

1.[圣杯布局]、[双飞翼布局]

2.绝对定位法

左右div设置为绝对定位;左div设置为 left: 0px;右div设置为 right: 0px;

如:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Title</title>
        </head>
        <style>
            html,body{
                margin: 0px;
                width: 100%;
            }
            h3{
                height: 100px;
                margin: 20px 0 0;
            }
            #left,#right{
                width: 200px;
                height: 200px;
                background-color: #ffe6b8;
                position: absolute;
                top: 120px;
            }
            #left{
                left: 0px;
            }
            #right{
                right: 0px;
            }
            #center{
                margin: 2px 210px;
                background-color: #eee;
                height: 200px;
            }
        </style>
    <body>
        <h3>实现三列宽度自适应布局</h3>
        <div id="left">我是左边</div>
        <div id="right">我是右边</div>
        <div id="center">我是中间</div>
    </body>
    </html>

该布局的不足:因为是绝对定位,如果页面上有其他的内容,top的值要小心处理,最好给CSS样式进行一个初始化。

3.使用自身浮动法

自身浮动法的原理就是使用对左右使用分别使用float:left和float:right,float使左右两个元素脱离文档流,中间元素正常在正常文档流中,使用margin指定左右外边距对其进行一个定位。

如下:

<!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Title</title>
        </head>
        <style>
            html,body{
                margin: 0px;
                width: 100%;
            }
            h3{
                height: 100px;
                margin: 20px 0 0;
            }
            #left,#right{
                width: 200px;
                height: 200px;
                background-color: #ffe6b8;
            }
            #left{
                float: left;
            }
            #right{
                float: right;
            }
            #center{
                margin: 2px 210px;
                background-color: #eee;
                height: 200px;
            }
        </style>
    <body>
        <h3>实现三列宽度自适应布局</h3>
        <div id="left">我是左边</div>
        <div id="right">我是右边</div>
        <div id="center">我是中间</div>
    </body>
    </html>

该布局法的好处是受外界影响小,但是不足是 三个元素的顺序,center一定要放在最后,这是和绝对定位不一样的地方,center占据文档流位置,所以一定要放在最后,左右两个元素位置没有关系。当浏览器窗口很小的时候,右边元素会被击倒下一行。

原文地址:https://www.cnblogs.com/coderhf/p/12737483.html