圣杯布局

  • html
 <div class="content">
        <div class="main">
            中间自适应区域
        </div>
        <div class="left">
            <p>I'am left</p>
        </div>
        <div class="right">
            <p>I'am right</p>
        </div>
    </div>

*css

*{
    padding: 0;
    margin: 0;
}
.content{
    box-sizing: border-box;
    width: 100%;
    padding-left: 200px;
    padding-right: 200px;
}
.main{
    background: #f66;
    width: 100%;
    float: left;
    height: 100px;
}
.left{
    background:#fcc;
    width: 200px;
    float: left;
    margin-left: -100%;
    position: relative;
    left: -200px;
    height: 50px;
}
.right{
    position: relative;
    right: -200px;
    background: #fcc;
    width: 200px;
    float: left;
    margin-left: -200px;
    height: 60px;
}

*有几点需要注意一下:

1. 中间自适应的区域在结构上要放在left和right之上。 
2. content(即包裹在最外面的那一层div)他必须是box-sizing:border-box。因为只有这样在后面设置其padding值时,他才会把内容里面的三个div全部挤进来而不是扩充出去。 
3. 负margin的使用原理是对float元素移动到上面。left的margin-left设置为-100%得到的值是-父元素的宽度,即left将会跑到main的左边。right设置为-200px则是让right移动到main的右边。但同时,由于float属性他们会挡住main的显示。 
4. 于是需要使用position定位,将left和right分别定位到最左端和最右端。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 前端必读:浏览器内部工作原理[https://kb.cnblogs.com/page/129756/] 作者: T...
    我是强强阅读 4,862评论 0 2
  • 简介网络浏览器很可能是使用最广的软件。在这篇入门文章中,我将会介绍它们的幕后工作原理。我们会了解到,从您在地址栏输...
    wengjq阅读 6,488评论 2 15
  • 那一年过年,北方下了一场极为罕见的大雪,房檐下的窗户框上结满了冰碴,坚挺的挂在那里,纹丝不动。 暴风雪过后的日头,...
    小城已三更阅读 4,655评论 8 24
  • 本支线还未完成,请选择攻略魏离 攻略魏离
    刘眉阅读 1,468评论 0 0

友情链接更多精彩内容