欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

圣杯布局与双飞翼布局 - 说中

程序员文章站 2022-04-19 17:10:38
...
圣杯布局和双飞翼布局的目的都是:左右两栏固定宽度,中间部分自适应;

圣杯布局

圣杯布局HTML

我是主要
我是左边
我是右边

圣杯布局CSS:

* {
    margin: 0;
    padding: 0
}

.main {
    background-color: yellow;
    height: 100px;
    float: left;
    width: 100%;
}

.left {
    background-color: red;
    width: 200px;
    height: 100px;
    float: left; 
    margin-left: -100%; /*margin负边距*/
    position: relative; /*相对自身偏移*/
    left: -200px; 
}

.right {
    background-color: blue;
    width: 200px;
    height: 100px;
    float: left;
    margin-left: -200px; /*margin负边距*/
    position: relative;  /*相对自身偏移*/
    right: -200px;   
}

.wrap {
    padding: 0 200px;  /*父级设置padding*/
}

圣杯布局的优点

  使主要内容列先加载。
  允许任何列是最高的。
  没有额外的div。
  需要的hack很少。

双飞翼布局

双飞翼HTML


    
            双飞翼布局
        
我是主要
我是左边
我是右边

双飞翼CSS

.main-wrap {
    float: left;
    width: 100%;
}

.main {
    height: 100px;
    margin-left: 200px;  /*利用左、右外边距定位*/
    margin-right: 200px;
    background-color: yellow;
}

.left {
    background-color: red;
    width: 200px;
    height: 100px;
    float: left;
    margin-left: -100%;
}

.right {
    background-color: blue;
    width: 200px;
    height: 100px;
    float: left;
    margin-left: -200px;
}

圣杯布局和双飞翼的比较

1.两种布局都是把主要内容放在前面加载;

2.布局有相似之处,都使用了负外边距来布局;

3.不同:

圣杯布局是设置 父容器的padding值、相对定位来实现;

双飞翼布局是给main添加了一个div容器、设置main的左右外边距 来实现;