1. 程式人生 > >HTML+CSS 五種佈局方式

HTML+CSS 五種佈局方式

已知佈局元素的高度,寫出三欄佈局,要求左欄、右欄寬度各為300px,中間自適應。

一、浮動佈局

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>浮動佈局</title>
    <style type="text/css">
      .wrap1 div{
            min-height: 200px;
        }
        .wrap1 .left{
            float
: left; width: 300px; background: red; } .wrap1 .right{ float: right; width: 300px; background: blue; } .wrap1 .center{ background: pink; }
</style> </head> <body> <
div
class="wrap1">
<div class="left"></div> <div class="right"></div> <div class="center"> 浮動佈局 </div> </div> </body> </html>

浮動佈局的相容性比較好,但是浮動帶來的影響比較多,頁面寬度不夠的時候會影響佈局。

二、絕對定位佈局

<!DOCTYPE html>
<html> <head> <meta charset="utf-8" /> <title>絕對定位佈局</title> <style type="text/css"> .wrap2 div{ position: absolute; min-height: 200px; } .wrap2 .left{ left: 0; width: 300px; background: red; } .wrap2 .right{ right: 0; width: 300px; background: blue; } .wrap2 .center{ left: 300px; right: 300px; background: pink; } </style> </head> <body> <div class="wrap2 wrap"> <div class="left"></div> <div class="center"> 絕對定位佈局 </div> <div class="right"></div> </div> </body> </html>

絕對定位佈局快捷,但是有效性比較差,因為脫離了文件流。

三、flex佈局

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>flex佈局</title>
    <style type="text/css">
      .wrap3{
            display: flex;
            min-height: 200px;
        }
        .wrap3 .left{            
            flex-basis: 300px;
            background: red;
        }
        .wrap3 .right{            
            flex-basis: 300px;
            background: blue;
        }
        .wrap3 .center{
            flex: 1;
            background: pink;
        }

    </style>
</head>
<body>

    <div class="wrap3 wrap">
        <div class="left"></div>
        <div class="center">
            flex佈局
        </div>
        <div class="right"></div>
    </div>

</body>
</html>

自適應好,高度能夠自動撐開

四、table-cell表格佈局

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>table-cell表格佈局</title>
    <style type="text/css">
      .wrap4{
            display: table;
            width: 100%;
            height: 200px;
        }
        .wrap4>div{
            display: table-cell;
        }
        .wrap4 .left{           
            width: 300px;
            background: red;
        }
        .wrap4 .right{          
            width: 300px;
            background: blue;
        }
        .wrap4 .center{
            background: pink;
        }

    </style>
</head>
<body>

    <div class="wrap4 wrap">
        <div class="left"></div>
        <div class="center">
            表格佈局
        </div>
        <div class="right"></div>
    </div>

</body>
</html>

相容性好,但是有時候不能固定高度,因為會被內容撐高。

五、網格佈局

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>網格佈局</title>
    <style type="text/css">
      .wrap5{
            display: grid;
            width: 100%;
            grid-template-rows: 200px;
            grid-template-columns: 300px auto 300px;
        }
        .wrap5 .left{   
            background: red;
        }
        .wrap5 .right{  
            background: blue;
        }
        .wrap5 .center{
            background: pink;
        }

    </style>
</head>
<body>

    <div class="wrap5 wrap">
        <div class="left"></div>
        <div class="center">
            網格佈局
        </div>
        <div class="right"></div>
    </div>

</body>
</html>

比較新的一種佈局方式,相容性沒那麼好。