圣杯布局&双飞翼布局

  • 两边定宽,中间自适应
  • 要求先渲染中间主题部分(所以中间的节点是需要写在左右节点之前的)
//HTML代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <link rel="stylesheet" href="style.css">
    <title>圣杯布局</title>
</head>
<body>
<div id="head">header</div>
<div id = 'content'>
    <div id = 'middle'>我在中间,但要首先渲染</div>
    <div id = 'left'>我在左边</div>
    <div id = 'right'>我在右边</div>
</div>
<div id="foot">footer</div>
</body>
</html>
//css代码
#content {
    padding: 0 100px 0 100px;//左右留出空白
    overflow: hidden;//闭合浮动
    border:2px solid black;}

#middle {
    width: 100%;
    background-color: pink;
    float: left;
}

#left {
    width: 100px;
    background-color: red;
    float: left;
    margin-left: -100%;//移到上一行开头
    position: relative;//相对定位
    left: -100px;//左移到父级设置的padding值所留出的空白区
}

#right {
    background-color: blue;
    float: left;
    width: 100px;
    margin-left: -100px;//移到上一行末尾
    position: relative; //相对定位
    right:-100px;  //右移到父级设置的padding值所留出的空白区
}

#head{
    background-color: aqua;
}

#foot{
    background-color: blueviolet;
    clear: both; //防止因为浮动导致上移,但其实我试了一下也可不用,因为含有浮动元素的父级元素设置了`overflow:hidden`,触发bfc,闭合了浮动
}

效果如下:

圣杯布局

和她是同胞兄弟的还有一个双飞翼布局,他们所实现的效果是相同的,但是在处理中间区域被遮挡的问题上做法稍有不同

  • 圣杯布局:为了中间div内容不被遮挡,将中间div设置了左右padding-left和padding-right后,将左右两个div用相对布局position: relative并分别配合right和left属性,以便左右两栏div移动后不遮挡中间div。
  • 双飞翼布局:为了中间div内容不被遮挡,直接在中间div内部创建子div用于放置内容,在该子div里用margin-left和margin-right为左右两栏div留出位置

个人觉得双飞翼布局更简单一些,不会涉及到相对定位

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

相关阅读更多精彩内容

  • 作者:知乎用户 链接 来源:知乎 圣杯布局的来历是2006年发在a list part上的这篇文章: In Sea...
    造梦先生2mr阅读 5,556评论 0 0
  • 圣杯布局是指两边定宽,中间自适应的三栏布局。圣杯布局和双飞翼布局解决问题的方案在前一半是相同的,也就是三栏全部fl...
    nianxiaoge阅读 1,774评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,693评论 1 92
  • 前言 所谓经典,说白了就是古老的东西,但是又是很有用的东西。大多数前端,还有本菜,都或多或少了解的圣杯布局和双飞翼...
    kk少年阅读 5,045评论 0 8
  • 每当我们提及付出,总要谈到回报。我们把它们两个紧紧的绑在一起,我们只要付出了,就要理所当然的得到回报。 在付出和回...
    毛旭天阅读 1,670评论 1 2

友情链接更多精彩内容