美文网首页
CSS三栏布局(4种方法)

CSS三栏布局(4种方法)

作者: 凯凯frank | 来源:发表于2020-02-12 20:43 被阅读0次

要求:垂直三栏布局,左右两栏宽度固定,中间自适应。

方法1:浮动

思路:三栏全部左浮动,中间元素width用calc计算

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{  margin: 0;  padding: 0; box-sizing: border-box; }
        html,body{  height: 100%;  }
        .left-panel{
            float: left;
            width: 200px;
            height: 100%;
            background-color: red;
        }
        .right-panel{
            float: left;
            width: 100px;
            height: 100%;
            background-color: yellow;
            border-left: 1px solid red;
            border-right: 1px solid red;
        }
        .main-panel{
            float: left;
            height: 100%;
            width: calc(100% - 300px);
            background-color: #00a2ea;
        }
    </style>
</head>
<body>
    <div class="left-panel">left</div>
    <div class="main-panel">main</div>
    <div class="right-panel">right</div>
</body>
</html>

方法2:浮动+普通布局

思路:左边容器左浮动,右边容器右浮动,中间元素不浮动,设置margin。此方法要求右边元素放在中间元素前面。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{  margin: 0;  padding: 0; box-sizing: border-box; }
        html,body{  height: 100%;  }
        .left-panel{
            float: left;
            width: 200px;
            height: 100%;
            background-color: gray;
        }
        .right-panel{
            float: right;
            width: 100px;
            height: 100%;
            background-color: yellow;
        }
        .main-panel{
            height: 100%;
            background-color: #00a2ea;
            border-left: 1px solid red;
            border-right: 1px solid red;
            margin-left: 200px;
            margin-right: 100px;
        }
    </style>
</head>
<body>
    <div class="left-panel">left</div>
    <div class="right-panel">right</div>
    <div class="main-panel">main</div>
</body>
</html>

方法3:绝对定位

思路:左边容器靠左绝对定位,宽度固定,右边容器靠右绝对定位,宽度固定。中间容器设置margin

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{  margin: 0;  padding: 0; box-sizing: border-box; }
        html,body{  height: 100%;  }
        .left-panel{
            position: absolute;
            left: 0;
            top: 0;
            width: 200px;
            height: 100%;
            background-color: gray;
        }
        .right-panel{
            position: absolute;
            right: 0;
            top: 0;
            width: 100px;
            height: 100%;
            background-color: yellow;
        }
        .main-panel{
            height: 100%;
            margin-left: 200px;
            margin-right: 100px;
            background-color: #00a2ea;
            border-left: 1px solid red;
            border-right: 1px solid red;
        }
    </style>
</head>
<body>
    <div class="left-panel">left</div>
    <div class="main-panel">main</div>
    <div class="right-panel">right</div>
</body>
</html>

方法四:flex布局

思路:父容器flex布局,左右两个子容器固定宽度,中间的容器设置flex-grow:1;填充容器剩余的宽度。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{  margin: 0;  padding: 0; box-sizing: border-box; }
        html,body{  height: 100%;  }
        .container{
            display: flex;
            height: 100%;
        }
        .left-panel{
            width: 200px;
            background-color: gray;
        }
        .right-panel{
            width: 100px;
            background-color: yellow;
        }
        .main-panel{
            flex-grow: 1;
            background-color: #00a2ea;
            border-left: 1px solid red;
            border-right: 1px solid red;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="left-panel">left</div>
        <div class="main-panel">main</div>
        <div class="right-panel">right</div>
    </div>
</body>
</html>

相关文章

  • 浅谈CSS关于清除浮动的三种方法

    浅谈CSS关于清除浮动的三种方法 CSS中,因为布局需要,我们常常希望出现一些浮动布局,比如图文环绕。这些浮动布局...

  • CSS布局技巧总结

    目录 详解 CSS 七种三栏布局技巧 16种方法实现水平居中垂直居中 详解 CSS 七种三栏布局技巧 三栏布局,顾...

  • 绝对定位布局和浮动布局

    在CSS中,实现分栏布局有两种方法。第一种方法是使用四种CSS定位选项(absolute 、static、rela...

  • CSS flex布局最后一行列表左对齐方法

    CSS flex布局最后一行列表左对齐的N种方法

  • CSS布局

    如何使用CSS做出: 1.左右布局/左中右布局2.水平居中3.垂直居中 左右布局/左中右布局 现在提供2种方法,实...

  • 如何使用CSS做出:1. 左右布局/左中右布局2.水平居中3.垂

    如何使用CSS做出: 1.左右布局/左中右布局2.水平居中3.垂直居中 左右布局/左中右布局 现在提供2种方法,实...

  • 面试题整理

    1.CSS中实现水平垂直居中几种方法(这里举出两种方法) 解一(利用flex布局).box{display: fl...

  • CSS三栏布局(4种方法)

    要求:垂直三栏布局,左右两栏宽度固定,中间自适应。 方法1:浮动 思路:三栏全部左浮动,中间元素width用cal...

  • 常见的布局场景类型

    历代网页布局 1:表格布局 2:DIV+CSS布局 3:flex布局 4:grid布局 一:圣杯布局 在页面上的显...

  • CSS弹性布局

    CSS2.1定义了 4 中布局方式 块布局:设计初衷是用于布局文档.指设置 display:block 内联布局:...

网友评论

      本文标题:CSS三栏布局(4种方法)

      本文链接:https://www.haomeiwen.com/subject/epacfhtx.html