css两种好用的布局

一,圣杯布局

 

收集一篇文章《我是如何同时拿到阿里和腾讯offer的》http://www.cnblogs.com/yuanzm/p/4372898.html
首先谈谈三栏布局:

 

圣杯布局实现的步骤:

     1,html结构

 

设置中间栏宽度 100%  侧边栏定宽         普通三行显示

2,设置三个div向左浮动

为什么要向左浮动呢?

因为最初知道的想要让块级元素在一行显示,通过:浮动->脱离文档流->设置外边距 。                     没有达到效果? 由于main设置宽度100%  后面两个div被挤到了下一行

3,为两栏添加负margin,用来调整位置,左边div设置margin-left:-100%    右边div设置margin-left:-自身宽度(利用了浮动元素的margin负到一定的值后会使其自身移动到上一行的原理)

4,左右两个div跑到了主div上面?(原因:主div宽100%)  主div宽=ct宽

   设margin值  为ct左右留白  ?(空出左右两栏的位置)   所以margin的值依据左右两栏的宽度        

5,使左右两栏移动到空白区域?

      1)左中右设置 相对定位 position:relative (利用了相对定位相对于父容器移动的原理)

      2)再设置  右div (right:-310px)  左div(left:-210px)                get!成功把左右两个div移到左右两边了,而且还有舒服的间距

严重问题出来了,当浏览器宽度缩小,布局->乱

why??  

浏览器宽度缩小   ct宽度缩小  没有能力包含左右两个定宽div   左右两个定宽div不得不换行

怎么办?

设置 ct的最小宽度=左右两个中的最大宽度

 

 6,圣杯布局代码预览

二,为什么双飞翼比圣杯布局好?

1,进行到这一步

2,在main里面添加一个div容器content  为它设置外边距(利用边距重合的原理撑开外部ct这个div的宽度)

为什么选择添加div并为它设置margin?

  因为main这个div宽度100%,不可能设置它的margin值

为什么要撑开?

让左右两个div流动到左右两边

 

 

 

 

 

     

 

posted @ 2016-12-14 22:54  布衣小红  阅读(300)  评论(0)    收藏  举报