双飞翼布局是一种比较灵活的布局,始于淘宝UED,玉伯提出的,他着重介绍的是双飞翼栅格布局。

  三列布局为“双飞燕”布局,可以把三栏比作一只鸟,main部分相当是于鸟的身体,而left与right就是鸟的“翼”了,鸟想要平衡地飞翔就要把主体位置给摆正确,然后在“翼”的作用下开始起飞。布局也是一样的,我们也要先把主体给摆好,然后再合理地调整双翼,这样整体动作才会比较和谐。

  双飞翼布局的效果图如下所示:

                

  HTML代码如下所示:

 <div class="wrap">
     <div class="main">主体</div>
     <div class="left">左边</div>
     <div class="right">右边</div>
 </div>

  实现要求:主间部分内容的宽度是要自适应的,左、右两边宽度分别为20%,30% .方法我想到了两种:1)是利用margin负值。2)利用相对定位

  CSS样式部分的代码:(最初第一次的写法)

  <style>
         /* 这里的高度可以根据自己的实际情况来设置 */
         .main,.left,.right { float:left;  height:400px; }
         /* 主体的宽度要自适应,然后设置左右两边的“翼”即可 */
         .main { width:100%;  background:lightblue; text-align: center}
         .left { width:20%; background:lightcoral;}
         .right { width:30%; background:lightgreen; }
     </style>

  但是这样写完后,并不是上面的效果,而是如下图所示的效果:

           

  利用margin负值的奇妙用法,下面看如下的代码:

  (1)给左侧设置 margin-left:-100%,主体的宽度是100%,相当于左侧向给左移了,刚好实现左边与主体的对齐

  .left { width:20%; background:lightcoral;margin-left:-100%;}

   (2)右侧自身的宽度,相当于是自己向左移了自身的一个宽度,刚好实现右边与main的对齐

 .right { width:30%; background:lightgreen;margin-left:-30%; }

   (3)主体的位置设置?它的左边及右边部分元素是会被left/right挡住的,所以我们还必须在main里面再添加一个div(class="mainIn"),设置margin:0 30% 0 20%;,把两边内容给挤开,这样才是完美的效果。

  完整版代码如下:

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>CSS双飞翼布局</title>
     <style>
         /* 这里的高度可以根据自己的实际情况来设置 */
         .main,.left,.right { float:left;  height:400px; margin: 0 -30% 0 -20%}
         /* 主体的宽度要自适应,然后设置左右两边的“翼”即可 */
         .main { width:100%;  background:lightblue;}
         .left { width:20%; background:lightcoral;margin-left:-100%;}
         .right { width:30%; background:lightgreen;margin-left:-30%; }
       .mainIN{maigin:0 30% 0 20%}
</style> </head> <body> <div class="wrap"> <div class="main"><div class = "mainIn">主体</div></div> <div class="left">左边</div> <div class="right">右边</div> </div> </body> </html>

css双飞翼布局的更多相关文章

  1. CSS 双飞翼布局

    10 Jul 2016 » CSS 双飞翼布局:总共分三栏,左侧栏Left,中间主栏Main,右侧栏Right 第一步,建立三个div,不过注意,中间Main需要加一个wrap div. 整个结构看起 ...

  2. CSS布局 -- 圣杯布局 & 双飞翼布局

    按照我的理解,其实圣杯布局跟双飞翼布局的实现,目的都是左右两栏固定宽度,中间部分自适应. 但在这里实现起来还是有一些区别的 [圣杯布局] 在这里,实现了左(200px) 右(220px) 宽度固定,中 ...

  3. CSS布局经典—圣杯布局与双飞翼布局

    在我之前的博客网页整体布局完全剖析-剖完你不进来看一下么?中总结单列.两列.三列固宽与变宽布局,我还以为已经囊括了所有经典的网页布局方法了呢,当然除了CSS3的弹性盒模型没有涉及到,现在看来确实是自己 ...

  4. CSS之圣杯布局与双飞翼布局

    圣杯布局 三行等高 HTML: <!DOCTYPE html><html><head>    <meta charset="utf-8"& ...

  5. CSS经典布局-圣杯布局、双飞翼布局

    圣杯布局的来历是2006年发在a list part上的这篇文章:In Search of the Holy Grail · An A List Apart Article圣杯是西方表达“渴求之物&q ...

  6. CSS 圣杯布局 / 双飞翼布局的实现

    工作的越久,有些基础知识我们可能就逐渐淡忘了,今天我们来回顾一下css的圣杯布局和双飞翼布局, 这两个名词你可能不熟, 那三栏布局你肯定就非常熟悉了, 就是两边定宽, 中间自适应 的 布局 1 , 圣 ...

  7. css布局记录之双飞翼布局、圣杯布局

    双飞翼布局和圣杯布局是比较常用的布局方式,都是为了实现一行三列,并且两侧列固定宽度,中间列宽度自适应的效果:直接上代码记录下: <!DOCTYPE html> <html lang= ...

  8. css布局笔记(三)圣杯布局,双飞翼布局

    圣杯布局和双飞翼布局都是三列布局,两边定宽,中间自适应布局,中间栏要在放在文档流前面以优先渲染. 圣杯布局如下 <!-- 圣杯布局 --> <!DOCTYPE html> &l ...

  9. css中的圣杯布局和双飞翼布局

    圣杯布局 布局要求: 三列布局,中间自适应,两边定宽 中间栏要在浏览器优先渲染 允许任意列的高度最高 用最简单的CSS.最少的HACK语句 解释说明: 1.min-width:700px是为了当页面缩 ...

随机推荐

  1. nodejs复习05

    stream 可读流 fs.pause()方法会使处于流动模式的流停止触发data事件,切换到非流动模式并让后续数据流在内部缓冲区 var fs = require('fs') var rs = fs ...

  2. my links

    如何解決MySQL 開動不到的問題 MySQL start fail 10 BEST JQUERY FILE UPLOAD PLUGINS WITH IMAGE PREVIEWS Spring MVC ...

  3. 【转】《从入门到精通云服务器》第四讲—DDOS攻击

    上周咱们深入分析了云服务器的配置问题,好了,现在手上有了云服务器之后,我们又不得不提它:DDOS攻击.这是所有运维者的心头痛,也是任何公司听闻后都将心惊胆战的强大对手.下面我们将用浅显易懂的方式讲述什 ...

  4. [BZOJ3751][NOIP2014] 解方程

    Description 已知多项式方程:a0+a1*x+a2*x^2+...+an*x^n=0 求这个方程在[1,m]内的整数解(n和m均为正整数).   Input 第一行包含2个整数n.m,每两个 ...

  5. 在安装AndroidStudio时产生的问题

    JDK安装完毕,环境变量也配置完了,AndroidStudio安装完了,其中SDK使用了自己下载好的包. 但是第一次打开AndroidStudio的时候出现了错误: java.lang.Runtime ...

  6. Font Squirrel

    Font Squirrel FontSquirrel:国外免费字体下载网是一个提供高质量商业字体下载网站,提供海量的英文字体库,用户可以随意下载并应用于各种商业用字,无需考虑其版权问题. 官网地址:h ...

  7. IntelliJ IDEA全键盘操作

    IntelliJ IDEA 如何做到全键盘操作呢? 1.自定义快捷键实现全屏操作 你可以设置自定义快捷键进入全屏操作,并实现各个窗口之间的切换.这样,你就可以告别小窗口的时代,体验全屏显示的效果了!( ...

  8. oracle10g冷备份和恢复过程记录

    一.冷备份: 1.操作系统无法进入,需要利用启动盘进入winpe系统进行操作. 2.进入PE系统后,搜索所有盘符确认没有其它被作为oracle数据文件存放的目录,也就是说所有oracle有关的文件都存 ...

  9. shell去除换行和空格2

    #!/bin/bash if [ -f str.txt ] ## 如果str.txt存在,则返回true then strval=$(cat str.txt|awk '{printf "%s ...

  10. java面向对象_构造器

    构造器(构造方法):是类中定义的方法. 1)常常用于给成员变量赋值: 2)与类同名,没有返回值类型,也不能写void: 3)在创建对象时被自动调用.所以构造方法的访问修饰符要用public,才能被自动 ...