html几种常见面试布局总结(多列、圣杯、双飞翼、等高布局)

一、两列自适应布局

<body>

    <!-- 两列自适应布局:解决不同设备提供不同版本的页面问题 -->

    <!-- 左侧宽度固定、右侧宽度自适应-->

    <!-- 1、左右两个盒子,左侧盒子宽度固定,右侧盒子宽度100% -->

    <!-- 2、左侧盒子设置绝对定位position:absolute;或者让其浮动 -->

    <!-- 3、右侧盒子添加子盒子,子盒子设置padding-left:值为左侧盒子的宽度 -->

    <div>

        <div class="left"></div>

        <div class="right">

            <div class="child">

                ceshiceshi

            </div>

        </div>

    </div>

</body>

<style>

    .left{

        width: 200px;

        height: 100px;

        background-color: aqua;

        position: absolute;

    }

    .right{

        width: '100%';

        height: 100px;

        background-color: blanchedalmond;

    }

    .child{

        height: 50px;

        padding-left: 200px;

        background-color: aquamarine;

    }

</style>

二、圣杯布局

<style>

    * {

        margin: 0;

        padding: 0;

        border: 0;

        box-sizing: border-box;

    }

    .box {

        position: relative;

    }

    .right,

    .left {

        width: 200px;

        height: 100px;

        position: absolute;

    }

    .left {

        background-color: aqua;

        left: 0px;

    }

    .middle {

        width: 100%;

        height: 100px;

        background-color: blueviolet;

        padding: 0 200px;

    }

    .right {

        background-color: blanchedalmond;

        right: 0px;

        top: 0;

    }

</style>

<body>

    <!-- 圣杯布局 -->

    <!-- 左右两侧宽度固定,中间部分自适应的三列布局-->

    <!-- 1、position定位,父级盒relative,左右盒子absolute -->

    <!-- 2、两侧宽度固定,中间宽度设置100% -->

    <!-- 3、左侧盒子left:0,右侧盒子right:0-->

    <!-- 4、中间盒子用padding把内容显示出来 -->

    <!-- 还有一种方法用flex弹性盒子中的flex-grow中间盒子充满实现 -->

    <div class="box">

        <div class="left"></div>

        <div class="middle">

            ceshicehsi

        </div>

        <div class="right"></div>

    </div>

</body>

三、双飞翼布局

和圣杯布局差距不大,都是左右两列固定,中间自适应;双飞翼中间的盒子会多着一个子盒子,用margin来实现内容的显示,圣杯没有子盒子用的padding挤压内容

四、等高布局

分真等高和假等高

真等高用position、float做就可以;假等高利用内外间距抵消实现视觉上的等高,父盒子设置overflow,子盒子用padding-bottom撑开背景颜色,margin负值抵消

此处用真等高position实现

 * {

        margin: 0;

        padding: 0;

        border: 0;

        box-sizing: border-box;

    }

    .box {

        position: relative;

        height: 400px;

    }

    .right,

    .middle,

    .left {

        position: absolute;

        top: 0;

        bottom: 0;

    }

    .left {

        left: 0;

        width: 300px;

        background-color: aqua;

    }

    .middle {

       

        left: 300px;

        right: 300px;

        background-color: blueviolet;

        word-break: break-all;                        //实现文字自动换行

    }

    .right {

        width: 300px;

        right: 0;

        background-color: blanchedalmond;

    }

 <div class="box">

        <div class="left"></div>

        <div class="middle">

            ceshicehsicersagfsdadsaaadddsssssssddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

        </div>

        <div class="right"></div>

    </div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值