圣杯布局

三栏布局(两栏布局):侧栏宽度固定,中间的主内容区域宽度自适应
主要原理,对浮动元素设置 负margin = 自身宽度,会使元素上移。
html代码

    <div id="content">
        <div class="main">main</div>
        <div class="aside">aside</div>
        <div class="extra">extra</div>
    </div>

CSS代码

    .aside{
        width: 50px;
        height: 60px;
        background-color: red;
    }
    .extra{
        width: 50px;
        height: 60px;
        background-color: green;
    }
    .main{
        width: 100%;
        background-color: #ccc;
        height: 100px;
    }

  设置三个元素浮动,并设置相应元素的负margin后,元素会上移。当然浮动后需要清除浮动,这里不做介绍,详情见BFC博客。
CSS代码

    .aside{
        width: 50px;
        height: 60px;
        background-color: red;
        float: left;
        margin-left: -100%;/*父容器的宽度*/
    }
    .extra{
        width: 50px;
        height: 60px;
        background-color: green;
        float: left;
        margin-left: -50px;/*容器自身的宽度*/
    }
    .main{
        width: 100%;/*必须设置,浮动后元素宽度会塌陷*/
        background-color: #ccc;
        height: 100px;
        float: left;
    }

当然,此时仍有一些问题,比如.main被遮盖住了一部分。
以下开始是圣杯布局与双飞翼布局的不同点:

  • 1.对容器设置padding
    #content{
            padding: 0 60px;
        }
  • 2.对侧栏设置position: relative;并调整位置
    #content{
        padding: 0 60px;
        border: 1px solid black;
    }
    .aside{
        width: 50px;
        height: 60px;
        background-color: red;
        float: left;
        margin-left: -100%;/*父容器的宽度*/
        position: relative;
        left: -60px;
    }
    .extra{
        width: 50px;
        height: 60px;
        background-color: green;
        float: left;
        margin-left: -50px;/*容器自身的宽度*/
        position: relative;
        left: 60px;
    }
    .main{
        width: 100%;
        background-color: #ccc;
        height: 100px;
        float: left;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,816评论 1 92
  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,715评论 0 8
  • 在CSS的经典布局中,圣杯布局和双飞翼布局是十分典型的代表,在众多前端面试中也常常会遇到。今天我们就一起来聊聊“圣...
    shawnJ阅读 3,396评论 0 0
  • 简书,以前肯定听说过,或者是无意间看过简书上的文章,最近在找可以发表文章的APP,然后晚上在工作的空隙猛然想到这个...
    清扬惋兮阅读 304评论 1 1
  • 锦绣群峰水舞山, 云崖迎客雾成烟。 银河直落似连天。 侧耳倾听声未到, 泉珠溅起入心田。 壤间花草笑容欢。 【清风阁】
    清风阁阅读 256评论 2 2