双飞翼布局

双飞翼布局的意义

第一可以实现三列布局左右固定宽度,中间宽度自适应,第二个,通常三列布局都是按照左(sub)中(main)右(extra)顺序来写的,这样页面也会根据这个DOM结构来顺序加载,而如果用双飞翼布局,可以使三列布局中mian先加载,subextra后加载。

双飞翼布局的实现

双翼

html:

<body>
    <div class="main"></div>
    <div class="sub"></div>
    <div class="extra"></div>
</body>
  1. 这里如果都设置左浮动,main就会出现在页面左边;
  2. 我们都知道,如果浮动布局一排里显示不下时,行框就会被挤到下一行;
  3. 那么如果边距为负,他会移动到页面以外,当值大于等于自身宽度时,他就会被移动到上一行。
  4. 这时就可以使用负边距来实现另外两列的布局

css:

.main{ float:left;width:100%;}
.sub{  float:left;width:190px;margin-left:-100%;}
.extra{float:left;width:230px;margin-left:-230px;}

效果如图:


_1

鸟身

  1. 此时subextra都定位到正常位置了,但是main的左侧和右侧被挡住了。
  2. 因为main,sub,extra都处在浮动层,而且main是固定宽度,如果给main设置margin或者padding值,会因为其固有的宽度而撑开飞翼布局,直接影响到sub,extra的位置;
  3. 所以给main设置一个内层,为内层设置margin值

html:

<div class="main">
    <div class="main-content">
    </div>
</div>
<div class="sub"></div>
<div class="extra"></div>

css:

.main-content{margin:0 230px 0 190px;}

效果图:


_0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 圣杯和双飞翼布局都是左右两栏宽度固定,中间部分宽度自适应。 圣杯布局 参考:http://www.alistapa...
    饥人谷_NewClass阅读 729评论 0 2
  • (原文链接有点问题,慎点)仔细分析各种布局的技术实现,可以发现下面三种技术被经常使用:浮动 float负边距 ne...
    lulu_c阅读 811评论 0 0
  • 在前端布局中,事实上,圣杯布局其实和双飞翼布局是一回事。它们实现的都是三栏布局,两边的盒子宽度固定,中间盒子自适应...
    风铭阅读 1,499评论 1 6
  • 双飞翼布局和BFC 之前看到了一些面试题中,面试官会问到如果实现双飞翼布局或者是圣杯布局,这两个布局的理念基本是类...
    LucasDog阅读 1,080评论 0 4
  • 一、圣杯布局 主要html代码: 主要步骤:(1)main ,sub ,extra三个区块都设置左浮动,父元素清除...
    candy252324阅读 553评论 0 3