多栏布局-圣杯和双飞翼

什么叫多栏布局?

在显示页面中,将展示的内容分为多个块,并让这些块并列显示,两列就是两栏布局。

多栏布局有哪几种形式??

圣杯布局

1. 什么是圣杯布局?

圣杯布局是为了实现页面中左右两栏固定宽度和高度,中间部分自适应宽度的一种布局方式。话不多说我们上图!

2. 那么圣杯布局是通过什么方式实现的呢?
首先将顶部、中间以及底部的框架写出来
然后我们再来写中间布局的结构及样式(为了更加清楚的看出布局,同时也给顶部和底部加一个样式):

//结构:

之后我们将中间布局的三个子元素全部加上左浮动以及相对定位,并给父元素清除浮动影响。

此时我们来看页面效果是什么样的:

然后给中间布局的三个子元素加上相应的样式,中间部分的宽度应该是100%(中间部分是自适应),左侧和右侧的宽度我们暂且设定为300px,此时由于中间元素占满父元素宽度,左侧和右侧就被挤到下边一行(为了更好的观察子元素的位置和宽度,我们给它们分别加上不同的背景色):

下一步就要想办法把left和right元素移到middle的左侧和右侧

此时中间元素是占满全屏的,如果左侧和右侧元素移到上一行,那么必定会把中间元素盖住:

//样式

这时候left和right两个元素是盖在middle元素之上的,所以我们要给container的左右两边加内边距,宽度就是left和right的宽度,相当于是给left和right把位置腾出来。但由于我们是给container加内边距,left、right和middle都是container的子元素,所以加上内边距之后,所有的元素都会往中间移动:

最后我们只要再给left和right移动到疼出来的位置就可以了
此时圣杯布局就完成了:

双飞翼布局

1.什么是双飞翼布局?

双飞翼布局和圣杯布局实现的布局样式是一样的,只不过是显得方式不同。都是两侧宽度固定,中间部分自适应。

2. 双飞翼布局是如何实现的?
首先将顶部、中间以及底部的框架写出来:

通过上图我们可以看出来,双飞翼布局与圣杯布局的不同之处就在于,圣杯布局中间布局的三个显示的元素都是兄弟元素,而双飞翼布局中,中间布局中的自适应部分有一个子元素,实际上就是这个子元素才是显示中间元素内容的框。如果没有明白,那么我们继续写

下一步是写中间布局样式(为了更清楚的看布局,同时也给顶部和底部加一个样式):

首先给main、left和right添加左浮动float:left;使三个元素都浮动,并给元素设置最小高度。

之后先将main的宽度定为100%,也就是body的宽度。

由于三个元素都添加了左浮动,当main的宽度变为父元素的100%时,就会把其余两个元素挤到下边,就出现了如图的布局:

由于我们需要将left放main的左边,right放到main的右边,就要想办法给两个元素腾位置,确保不能覆盖中间元素的内容。在圣杯布局中,给予了三个元素的父元素一个外边距腾位置,而在双飞翼布局中,三个元素并没有被同一个父元素包裹,那么此时我们就需要给main添加一个子元素main-inner。main-inner是为了承载main的内容而存在的,此时我们给main添加左右的内边距就可以将left和right的位置腾出来:

//样式:

这样就将left和right所需的位置腾出来了:

此时,我们就按照计划,写完left和right的样式:
最后只需要将left和right与东到相应位置就可以了

**注意:双飞翼布局中,我们实际上是将main压在了底下。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值