美文网首页
假设高度已知,请写出三栏布局,其中左栏和右栏宽度各为300px,

假设高度已知,请写出三栏布局,其中左栏和右栏宽度各为300px,

作者: 前端_酒館 | 来源:发表于2021-06-16 08:58 被阅读0次
<section class="layout float">
    <style media="screen">
        .layout.float .left {
            float: left;
            width: 300px;
            background: red;
        }

        .layout.float .right {
            float: right;
            width: 300px;
            background: red;
        }

        .layout.float .center {
            background: yellow;
        }
    </style>
    <article class="left-right-center">
        <div class="left"></div>
        <div class="right"></div>
        <div class="center">
            <h1>浮动解决方案</h1>
        </div>
    </article>
</section>

<section class="layout absolute">
    <style media="screen">
        .layout.absolute .left-right-center > div {
            position: absolute;
        }

        .layout.absolute .left {
            left: 0;
            width: 300px;
            background: red;
        }

        .layout.absolute .center {
            left: 300px;
            right: 300px;
            background: yellow;
        }

        .layout.absolute .right {
            right: 0;
            width: 300px;
            background: red;
        }

    </style>
    <article class="left-right-center">
        <div class="left"></div>
        <div class="center">
            <h1>绝对定位解决方案</h1>
        </div>
        <div class="right"></div>
    </article>
</section>

<section class="layout flexbox">
    <style media="screen">
        .layout.flexbox {
            margin-top: 140px;
        }

        .layout.flexbox .left-right-center {
            display: flex;
        }

        .layout.flexbox .left {
            width: 300px;
            background: red;
        }

        .layout.flexbox .center {
            flex: 1;
            background: yellow;
        }

        .layout.flexbox .right {
            width: 300px;
            background: red;
        }

    </style>
    <article class="left-right-center">
        <div class="left"></div>
        <div class="center">
            <h1>flex布局解决方案</h1>
        </div>
        <div class="right"></div>
    </article>
</section>

<section class="layout table">
    <style media="screen">
        .layout.table .left-right-center {
            width: 100%;
            display: table;
            height: 100px;
        }

        .layout.table .left-right-center > div {
            display: table-cell;
        }

        .layout.table .left {
            width: 300px;
            background: red;
        }

        .layout.table .center {
            background: yellow;
        }

        .layout.table .right {
            width: 300px;
            background: red;
        }

    </style>
    <article class="left-right-center">
        <div class="left"></div>
        <div class="center">
            <h1>table布局解决方案</h1>
        </div>
        <div class="right"></div>
    </article>
</section>

<section class="layout grid">
    <style media="screen">

        .layout.grid .left-right-center {
            width: 100%;
            display: grid;
            grid-template-rows: 100px;
            grid-template-columns: 300px auto 300px;
        }

        .layout.grid .left {
            background: red;
        }

        .layout.grid .center {
            background: yellow;
        }

        .layout.grid .right {
            background: red;
        }

    </style>
    <article class="left-right-center">
        <div class="left"></div>
        <div class="center">
            <h1>网格布局解决方案</h1>
        </div>
        <div class="right"></div>
    </article>
</section>

<!--两栏布局 左右-->
<section class="layout two-grid">
    <style media="screen">
        .layout.two-grid .left-right {
            width: 100%;
            display: grid;
            grid-template-rows: 100px;
            grid-template-columns: auto 300px ;
        }

        .layout.two-grid .left {
            background: red;
        }

        .layout.two-grid .right {
            background: yellow;
        }

    </style>
    <article class="left-right">
        <div class="left"></div>
        <div class="right">
            <h1>网格布局解决方案</h1>
        </div>
    </article>
</section>

<!--两栏布局 上下-->
<section class="layout two-grid">
    <style media="screen">
        .layout.two-grid .top-bottom{
            width: 100%;
            display: grid;
            grid-template-rows: 300px auto ;
            grid-template-columns:  100px;
        }

        .layout.two-grid .top {
            background: red;
        }

        .layout.two-grid .bottom {
            background: yellow;
        }

    </style>
    <article class="top-bottom">
        <div class="top"></div>
        <div class="bottom">
            <h1>网格布局解决方案</h1>
        </div>
    </article>
</section>

以上是五种解决方案,这五种方案的优缺点分别是:

            浮动优点:兼容性比较好
                    缺点:脱离文档流

            绝对定位优点:快捷
                    缺点:布局脱离文档流

            flex布局优点:比较完美

            table布局优点:兼容性最好
                     缺点:当其中一个单元格的内容超出高度,其它的单元格也跟着撑开

            grid布局优点:1、固定和灵活的轨道尺寸;
                         2、可以使用行号,名称或通过定位网格区域将项目放置在网格上的精确位置;
                         3、可以将多个项目放入网格单元格或区域中,它们可以彼此部分重叠。
                    缺点:兼容性不太好。

如果此文对你有用请动动你的小手点个赞!谢谢!!!

相关文章

  • 前端面试准备--1.页面布局类

    页面布局 题目:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应 1、float 绝对定...

  • 前端面试系列:页面布局之三栏布局

    假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px;中间自适应。 浮动 绝对定位 flex布局 表格布...

  • CSS布局面试题

    页面布局 题目:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应 页面布局的变通 两栏布...

  • CSS实现三栏布局的方法

    经典CSS题目:三栏布局 假设页面高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应。 方法1...

  • 看慕课网面经总结(全)

    页面布局 假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应 5种不同方法,float,p...

  • 前端开发入门到实战:CSS三栏布局的5种方法详解

    题目:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应. 三栏布局的5种方案 这是一道经...

  • 前端开发入门到实战:CSS三栏布局的5种方法详解

    题目:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应. 三栏布局的5种方案 这是一道经...

  • 前端面试题(1)——页面布局

    题目:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px;中间自适应。 我这边总结了五种方法,如有不正...

  • 3-1页面布局

    题目:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应 1.每个方案的优缺点2 .假如把...

  • [html&css] 三栏布局

    题目:假设高度200px,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应。 方法1:flex布局 优...

网友评论

      本文标题:假设高度已知,请写出三栏布局,其中左栏和右栏宽度各为300px,

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