双飞翼布局演绎

  仔细分析各种布局的技术实现,可以发现这三种技术被经常使用:浮动 (float)、负边距( negative margin)、相对定位 (relative position)。这是实现布局的三个最基本的原子技术,只要巧妙组合,并加以灵活运用,就能“拼”出各种布局的实现方案。

  双飞翼布局就是一种灵活的布局实现,如果把三栏布局比作一只大鸟,可以把main看成是鸟的身体,sub和extra则是鸟的翅膀。这个布局的实现思路是,先把最重要的身体部分放好,然后再将翅膀移动到适当的地方。

  考虑以下DOM结构:

<div id="page">
      <div id="hd"></div>
         <div id="bd">
              <div class="main"></div>
              <div class="sub"></div>
              <div class="extra"></div>
         </div>
      <div id="ft"></div></div>

  利用浮动元素的负边距来定位:

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

  这样我们得到了第一个实践页面,效果如下:    

  可以看出,通过简单的负边距,已经让sub和extra定位到正确的位置。剩下的问题是如何让main也定位到正确的位置。一个自然的想法是,给main的容器#bd添加padding:

#bd {
          padding: 0 230px 0 190px;
 }

  效果如下:  

  这样能让main定位到正确的位置,但sub和extra的位置不对了。这是一个思考的关卡。既然sub和extra的位置不对,那就想办法调整到正确的位置。相对定位隆重登场:

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

  最终完成效果如下:  

时间: 2024-10-12 15:44:09

双飞翼布局演绎的相关文章

圣杯布局和双飞翼布局的理解和区别

圣杯布局和双飞翼布局基本上是一致的,都是两边固定宽度,中间自适应的三栏布局,其中,中间栏放到文档流前面,保证先行渲染.解决方案大体相同,都是三栏全部float:left浮动,区别在于解决中间栏div的内容不被遮挡上,圣杯布局是中间栏在添加相对定位,并配合left和right属性,效果上表现为三栏是单独分开的(如果可以看到空隙的话),而双飞翼布局是在中间栏的div中嵌套一个div,内容写在嵌套的div里,然后对嵌套的div设置margin-left和margin-right,效果上表现为左右两栏在

css的双飞翼布局

双飞翼布局的大概意思就是左右两边的内容是固定的,大小是固定的, 而中间的布局的随着页面的大小变化而自动变化的. 通过代码来解析: 1.四个div,也可以使用section,其中main,left.right为同一级的元素,inner为main的子元素. 2.main,left,right均左浮动. 3.main的宽度为100%,即占满这个页面. 4.设置left的margin-left:-100%;既让left与main在同水平线上,处在最左边. 5.设置right的margin-left:-2

HTML特殊布局--------双飞翼布局

今天看到以前写的一篇布局的例子分享给大家,双飞翼布局. 什么是双飞翼布局?? 1.三列布局,中间宽度自适应,两边固定宽度; 2.中间栏在浏览器中优先展示渲染: 双飞翼布局的原理: 中间的盒子定100%的宽 float:left: 两边的盒子都float:left,定固定的宽:左边的个盒子margin-left:-100%; 右边的盒子margin-left:-自身的宽: 以下是例子:  <div class="box"/> <div class="main&

css布局之圣杯布局和双飞翼布局

圣杯布局和双飞翼布局 今天看了很多圣杯布局和双飞翼布局的技术博客,通过自己的理解总结一下吧. 1.二者相同点: 实现的都是三栏布局,两边的盒子宽度固定,中间盒子自适应,也就是我们常说的固比固布局.它们实现的效果是一样的. 2.不同点: 圣杯布局知识点:浮动,负边距,相对定位,不需要添加额外标签. 双飞翼:只用到浮动,负边距,不需要使用相对定位,需要添加一个额外的标签. 注意:html结构中中间部分要写在左右布局之前,为了优先渲染. 下面就先来看一下圣杯布局的实现过程吧: 先写出基本DOM结构:

双飞翼布局介绍-始于淘宝UED

仔细分析各种布局的技术实现,可以发现下面三种技术被经常使用: 浮动 float 负边距 negative margin 相对定位 relative position 这是实现布局的三个最基本的原子技术.只要巧妙组合,并加以灵活运用,就能“拼”出各种布局的实现方案. 尝试之路考虑以下DOM结构: <div id="page">           <div id="hd"></div>              <div id

css布局-双飞翼布局

<div class="header">Header</div> <div class="bd"> <div class="main"> <div class="inner"> Main </div> </div> <div class="left">Left</div> <div class=

圣杯布局和双飞翼布局

圣杯布局和双飞翼布局基本上是一致的,都是两边固定宽度,中间自适应的三栏布局,其中,中间栏放到文档流前面,保证先行渲染.解决方案大体相同,都是三栏全部float:left浮动,区别在于解决中间栏div的内容不被遮挡上,圣杯布局是中间栏在添加相对定位,并配合left和right属性,效果上表现为三栏是单独分开的(如果可以看到空隙的话),而双飞翼布局是在中间栏的div中嵌套一个div,内容写在嵌套的div里,然后对嵌套的div设置margin-left和margin-right,效果上表现为左右两栏在

负边距、三栏布局(圣杯布局、双飞翼布局)

首先来了解下 一.负边距在让元素产生偏移时和position: relative有什么区别? position:relative产生偏移时,他原来的位置不会脱离文档流的,即还占用原来的空间,但负边距产生偏移时它原来的位置并不占用空间: 例如下面的代码 Document *{ margin: 0px; padding: 0px; } .up,.down,.middle{ background-color: red; height: 100px; width: 100px; } .negative-

对于圣杯布局和双飞翼布局的新认识

今天刷题的时候碰见了一道要求使用双飞翼布局的题.于是便对比了一下圣杯布局得到了点新认识. 我们都知道圣杯布局和双飞翼布局都实现了中间宽度自适应,两边定宽的效果.这样做的优势是重要的东西放在文档流前面可以优先渲染.两者又有什么差别呢? 对比圣杯布局和双飞翼布局 1.二者都主要使用了浮动和负边距来达到中间宽度自适应,两边定宽的目的. 具体来说就是设置左右两边div的margin-left为一负值并设置浮动.于是便会移动到上方的div内(也就是中间的div)与之重叠. 2.相比于圣杯布局双飞翼布局没有