圣杯布局与双飞翼布局

圣杯布局和双飞翼布局都是实现两侧边框固定,中间内容自适应的方法。


示例

首先是圣杯布局,实现方法主要分为这几步

1.头部和底部,分别设置一个高度,宽度默认就是100%。

2.中间 三个div是关键,先创建一个容器container,然后在容器里以center,left,right的顺序,创建三个div,首先将这三个div设置为浮动,这样底部就会跑到上面去,所以我们要将底部清楚浮动{clear:both}

3.给center设置为width:100%,left和right各给一个固定的宽度,由于先创建的center,center会占据整个宽度,所以left,right会挤到下面去。

4.接下来只需要让left和right上来,并位于center两侧就可以了。

5.设置left属性:margin-left:-100%;left会直接跑到center的左部,但是会覆盖住center,这显然不是我们想要的。

6.将container的pading-left设置为left的宽度,padding-right设置 为right的宽度,这样就会为left和right预留出位置。但是同样left因为在container内,它也会跟着container内边距的设置而向右偏移,不会回到理想的左侧。

7.解决这个问题只需要将left设置为position:relative,然后向右移动left的宽度,即可达到目的。

8.right就比较好解决,因为left已经位于center的左侧,此时的right还在center的下面并靠左,所以设置margin-left:'right的宽度'即可,这样right就会被挤上去,并且位于center的右边。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        body{

            min-width: 560px;

            box-sizing: border-box;

        }

        .header,.footer{

            height: 30px;

            /* border: 2px solid #666; */

            background-color: brown;

            text-align: center;

            line-height: 30px;

        }

        #container{

            padding-left: 200px;

            padding-right: 150px;

            overflow: hidden;

        }

        .footer{

            clear: both;

        }

        .column{

            position: relative;

            float: left;

            /* border: 2px solid purple; */

            height: 400px;

        }

        #center{

            width: 100%;

            background-color: burlywood;

        }

        #left{

            width: 200px;

            margin-left: -100%;

            left: -200px;

            background-color: cadetblue;

        }

        #right{

            width: 150px;

          margin-left: -150px;

          right: -150px;

          background-color: coral;



        }

    </style>

</head>

<body>

    <div class="header">头部</div>

    <div id="container">

        <div id="center" class="column">中部</div>

        <div id="left" class="column">左部</div>

        <div id="right" class="column">右部</div>

    </div>

    <div class="footer">底部</div>


</body>

</html>

双飞翼布局和圣杯 布局类似,只不过没有 设置container的pading值,而是在任由left和right覆盖住center的左右部分,并在center中在建立一个div,设置其margin值,margin-left=left的宽度,margin-right值等于right宽度即可。

       <!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        body{

            min-width: 560px;

            box-sizing: border-box;

        }

        .header,.footer{

            height: 30px;

            /* border: 2px solid #666; */

            background-color: brown;

            text-align: center;

            line-height: 30px;

        }

        #container{

            padding-left: 200px;

            padding-right: 150px;

            overflow: hidden;

        }

        .footer{

            clear: both;

        }

        .column{

            position: relative;

            float: left;

            /* border: 2px solid purple; */

            height: 400px;

        }

        #center{

            width: 100%;

            background-color: burlywood;

        }

        #left{

            width: 200px;

            margin-left: -100%;

            left: -200px;

            background-color: cadetblue;

        }

        .main-inner{

            margin-left: 200px;

            margin-right: 200px;

        }

        #right{

            width: 150px;

          margin-left: -150px;

          right: -150px;

          background-color: coral;



        }

    </style>

</head>

<body>

    <div class="header">头部</div>

    <div id="container">

        <div id="center" class="column">

            <div class="main-inner"></div>

        </div>

        <div id="left" class="column">左部</div>

        <div id="right" class="column">右部</div>

    </div>

    <div class="footer">底部</div>


</body>

</html>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容