5 layout methods of HTML+CSS

Knowing the height of the layout elements, write a three-column layout, requiring the width of the left column and the right column to be 300px, and the middle is self-adaptive.

Layout 1 (floating layout - left and right fixed middle adaptive)

<!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>

The compatibility of floating layout is better, but the impact of floating is more. When the page width is not enough, it will affect the layout and cause the box to collapse

Layout 2 (absolute positioning layout - left and right fixed middle adaptive)

<!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>

Absolute positioning layout is fast, but the effectiveness is relatively poor, because it is separated from the document flow.

Layout three (flex layout - left and right fixed middle adaptive)

<!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>

Good self-adaptation, the height can be opened automatically

Layout four (table-cell table layout - left and right fixed middle adaptive)

<!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>

Compatibility is good, but sometimes the height cannot be fixed because it will be raised by the content.

Layout five (grid layout - left and right fixed middle adaptive)

<!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>

A relatively new layout method, the compatibility is not so good.

Guess you like

Origin blog.csdn.net/qq_44552416/article/details/125102381