三栏式布局

三栏式布局

左右两边固定宽度200px,中间自适应!

1、绝对定位position

​ 外层元素设置宽度未100%,利用 position : absolute; 使左右两边固定宽度200px、高度和位置,中间栏给定高度,宽度继承自父元素100%,但左右margin值要给定大于200px的值!

绝对定位

优点:简单实用,并且主要内容可以优先加载;主体三个div不分顺序。

缺点:如果中间栏含有最小宽度限制,或是含有宽度的内部元素,当浏览器宽度小到一定程度,会发生层重叠的情况。

2、弹性布局flex

​ 外层元素设置为容器 display : flex; 左右两栏设置不放大 flex-grow:0; 可缩放 flex-shrink:1 ,固定的 flex-basis:200px ,简写 flex:0 1 200px;;中间栏 flex:1 1 auto,可放大!

弹性布局

优点:简单实用。

缺点:需要考虑浏览器的兼容性,主体三个div一定要按照左中右顺序。

3、自身浮动float(流式布局)

​ 左右栏给定宽度高度,并分别向左、向右浮动;中间栏给定margin值的左右距离大于200px,并给定高度(必须)。

流式布局

优点:代码简洁高效。

缺点:主体三个div,中间栏必须放在最后;中间栏注意不能使用clear:both; ;主要内容无法最先加载,当页面内容较多时会影响用户体验。

4、margin负值(双飞翼布局)

​ 三栏全浮动,将左侧栏设置 margin-left:-100%; ,将右侧栏设置 margin-left:-200px; 把左右两栏放到指定位置;中间栏的外层元素width:100% ,在嵌套一个内层元素,设置主要内容的高度与左右间距(大于200px)。

双飞翼布局

优点:三栏相互关联,具有一定抗性——布局不受内部影响;主要内容可以优先加载。

缺点:主体三个div,中间栏必须放在第一位上;理解困难;出现百分比宽度,过多的负值定位,如果出现布局的bug,排查不易。

5、圣杯布局

​ 三栏全浮动,利用margin负值布局(类似于双飞翼布局),把左右两栏放到指定位置;在最外层容器上加样式 margin:0 220px; 使整个布局向中间压缩,再利用 position:relative; 使左右两栏分别向左、向右移动定位,让出中间栏被压住的部分。

双飞翼布局

优点:与双飞翼布局相似,三栏关联,具有一定抗性;主要内容可以优先加载;相对于双飞翼来说,HTML代码相对简单。

缺点:主体三个div,中间栏必须放在第一位上;样式定义较为复杂;问题与双飞翼布局相似。

6、BFC布局

​ 左右栏给定宽度高度,并分别向左、向右浮动;并给左右两栏分别设置右边距、左边距;中间栏给定高度,设置overflow:hidden;

双飞翼布局

优点:与流式布局相似,代码简洁高效。

缺点:主体三个div,中间栏必须放在最后;与流式布局相似,主要内容无法最先加载,当页面内容较多时会影响用户体验。

7、Table布局

​ 将最外层容器 display:table; ,主体三个div均设置其 display:table-cell; ,分别设置左右栏的宽度高度即可。

双飞翼布局

优点:代码简单,容易理解。

缺点:主体三个div一定要按照左中右顺序;无法设置栏间距(这里要想设置栏间距,建议可以在中间栏外包一层div,外层div设置属性 display:table-cell ,再设置内层的margin值与具体高度)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值