双飞翼布局

双飞翼布局

实现双飞翼布局的五种方法

  • 浮动
  • 绝对定位
  • flex布局
  • table
  • grid

浮动
浮动的实现,就是直接将左右两边的块实现左右浮动,中间实现自适应

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        section div {
            height: 200px;
        }
        
        .left {
            width: 300px;
            float: left;
            background-color: pink;
        }
        
        .right {
            width: 300px;
            float: right;
            background-color: blue;
        }
        
        .center {
            background-color: red;
        }
    </style>
</head>

<body>
    <section>
        <div class="left"></div>
        <div class="right"></div>
        <div class="center">
            浮动布局
        </div>
    </section>
</body>

</html>

绝对定位
实现方法将三块div实现绝对定位,将左右两块div分别设置left和right为0,中间实现left和right各为左右两边的宽度

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>绝对定位</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        section div {
            height: 200px;
            position: absolute;
        }
        
        .left {
            width: 300px;
            left: 0;
            background-color: pink;
        }
        
        .right {
            width: 300px;
            right: 0;
            background-color: blue;
        }
        
        .center {
            left: 300px;
            right: 300px;
            background-color: red;
        }
    </style>
</head>

<body>
    <section>
        <div class="left"></div>
        <div class="center">
            absolute布局
        </div>
        <div class="right"></div>
    </section>
</body>

</html>

flex布局

实现方式:将外层的块级元素设置flex,将中间的块级元素设置为flex:1

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>flex</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        /* 外边框增加display:flex */
        
        section {
            display: flex;
        }
        
        section div {
            height: 200px;
        }
        
        .left {
            width: 300px;
            background-color: pink;
        }
        
        .right {
            width: 300px;
            background-color: blue;
        }
        
        .center {
            flex: 1;
            background-color: red;
        }
    </style>
</head>

<body>
    <section>
        <div class="left"></div>
        <div class="center">
            flex布局
        </div>
        <div class="right"></div>
    </section>
</body>

</html>

表格布局

实现方式:将外层块级元素设置display:table,分别设置左右两个块级元素固定宽,中间块级元素自适应

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表格布局</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        /* 外边框设置table布局,并设置宽度为100% */
        
        section {
            display: table;
            width: 100%;
        }
        
        section div {
            height: 200px;
            display: table-cell;
        }
        
        .left {
            width: 300px;
            background-color: pink;
        }
        
        .right {
            width: 300px;
            background-color: blue;
        }
        
        .center {
            background-color: red;
        }
    </style>
</head>

<body>
    <section>
        <div class="left"></div>
        <div class="center">
            table布局
        </div>
        <div class="right"></div>
    </section>
</body>

</html>

grid布局

实现方式:外边框设置grid布局,并设置宽度为100% ,设置grid-template-rows和grid-template-columns

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>grid布局</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        section {
            display: grid;
            grid-template-rows: 200px;
            grid-template-columns: 300px auto 300px;
            width: 100%;
        }
        
        .left {
            background-color: pink;
        }
        
        .right {
            background-color: blue;
        }
        
        .center {
            background-color: red;
        }
    </style>
</head>

<body>
    <section>
        <div class="left"></div>
        <div class="center">
            grid布局
        </div>
        <div class="right"></div>
    </section>
</body>

</html>

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理