圣杯模型(圣杯布局)

本文介绍了前端开发中常用的圣杯布局模型,旨在帮助开发者理解其工作原理。内容包括圣杯布局的组成部分及特点,提供了两种实现方法,一种基于传统浮动,另一种利用Flex布局。通过详细步骤解析,帮助读者掌握这一重要布局技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1。圣杯模型

圣杯模型是工作中经常可以用到的一种模型,分为三部分,左边,右边和中间三个部分,中间内容先渲染且自适应窗口,两边固定宽度。

办法有两种,学过flex布局的小伙伴可以直接看方法二,没学过flex布局的我稍后几天就会马上更新。

方法一:

   <div class="box">
        <!-- 浏览器解析代码是从上到下解析,要想先渲染,就要把先渲染的元素内容写在上面 -->
        <div class="center"></div>
        <div class="left"></div>
        <div class="right"></div>
    </div>

    <style>
        * {
            margin: 0;
            padding: 0;
        }

        /* 圣杯布局:两边固定宽度,中间先渲染并且自适应 */
        .box {
            /* 3.给三个盒子外面的大盒子添加一个内边距,然后两边内容相对定位出去就可以了 */
            padding: 0 200px;
        }

        .left,
        .right {
            width: 200px;
            height: 300px;
            background-color: orange;
            float: left;
            border: 1px solid black;
            box-sizing: border-box;
        }

        /* 1.首先,先让三个元素都浮动起来 这样三个块级元素就可以排成一排*/
        .center {
            width: 100%;
            float: left;
            height: 600px;
            background-color: pink;
        }

        .left {
            margin-left: -100%;
            /*2. 给左边的内容添加一个做外边距为-100% */
            position: relative;
            left: -200px;
            /* 3.相对定位,相对于自己本身向左移一个自己的宽度 */
        }

        .right {
            margin-left: -200px;
            /* 2.右边的盒子左外边距为盒子本身的宽度 */
            position: relative;
            right: -200px;
            /* 3.相对定位, 相对于自己本身右移一个自己的宽度 */
        }
    </style>

1.浮动之后的效果:

在这里插入图片描述

2.加完左右两个盒子的外边距的效果:

在这里插入图片描述

3.添加三个盒子外边的大盒子的内边距的效果:

在这里插入图片描述

3.2用完定位后的效果:

在这里插入图片描述

方法二:

<div class="box1">
        <div class="center"></div>
        <div class="left"></div>
        <div class="right"></div>

    </div>
    <style>
        .box1 {
            /* 1.大盒子进行flex布局,默认排成一排 */
            display: flex;
        }

        .left {
            width: 100px;
            height: 300px;
            background-color: pink;
            /* 3.给左边盒子设置order:-1 */
            /* order:-1 的意思是在flex布局里面的子元素的排列顺序,order值越小,越排在左边 */
            order: -1;
        }

        .right {
            width: 200px;
            height: 300px;
            background-color: orange;
        }

        .center {
            /* 2.给中间的内容设定flex:1 */
            /*flex:1 意思是除了设定固定的宽度之外的区域都是这个元素的 */
            flex: 1;
            background-color: black;
            height: 600px;

        }
    </style>

1.刚给大盒子加flex布局的效果:

在这里插入图片描述

因为中间的元素没有内容,所以没有显示,所以第二部是给content加上flex:1的属性

2.加完内容的效果:
在这里插入图片描述

想要left显示在左边要用到order属性,所以下一步是加order

3.加完order属性的效果:

在这里插入图片描述

这样,一个圣杯布局就完成啦,小伙伴们,圣杯布局可是工作中经常用到的布局哦,大家可要仔细的去练一练哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值