圣杯布局与双飞翼布局

圣杯布局与双飞翼布局圣杯布局和双飞翼布局都是实现的三栏布局 两边的盒子宽度固定 中间盒子自适应 也就是我们常说的固比固布局 它们实现的效果是一样的 差别在于其实现的思想 圣杯布局的出现是来自于 alistpart 上的一篇文章 InSearchofth 比起双飞翼布局 它的起源不是源于对页面的形象表达 在西方 圣杯是表达 渴求之物 的意思 而双飞翼布局 源与淘宝的 UED 通过缩放页面就可以发

圣杯布局和双飞翼布局都是实现的三栏布局,两边的盒子宽度固定,中间盒子自适应,也就是我们常说的固比固布局。它们实现的效果是一样的,差别在于其实现的思想。

圣杯布局的出现是来自于a list part上的一篇文章In Search of the Holy Grail。比起双飞翼布局,它的起源不是源于对页面的形象表达。在西方,圣杯是表达“渴求之物”的意思。而双飞翼布局,源与淘宝的UED。

整体HTML结构代码如下:

<header><h4>Header内容区</h4></header> <div class="container"> <div class="middle"><h4>中间弹性区</h4></div> <div class="left"><h4>左边栏</h4></div> <div class="right"><h4>右边栏</h4></div> </div> <footer><h4>Footer内容区</h4></footer> 

注意:上述代码,父元素的的三栏务必先写中间盒子。因为中间盒子是要被优先渲染,并且设置其自适应,也就是width:100%。

每个盒子的CSS样式如下:

header{ 
   width: 100%;height: 40px;background-color: darkseagreen;} .container{ height:200px;overflow:hidden;} .middle{ 
   width: 100%;height: 200px; background-color: deeppink;float:left;} .left{ width: 200px;height: 200px;background-color: blue;float:left;} .right{ 
   width: 200px;height: 200px;background-color: darkorchid;float:left;} footer{ 
   width: 100%; height: 30px;background-color: darkslategray;} 

目前硬性的实现了固比固布局。但中间盒子是自适应的宽度,所以中间盒子里的内容会被左右盒子给压住一部分。比如现在我给中间盒子加很多的内容,大家看看效果图:

这里写图片描述

利用父级元素设置左右内边距的值,把父级的三个子盒子往中间挤。代码如下:.container{ padding: 0 200px;} 这里的200px是左右盒子的宽度。

这里写图片描述

这里写图片描述

圣杯布局终于搞定了,也实现了我们要的效果,左右侧的盒子固定,中间盒子自适应,而且中间盒子的内容完全不受影响。

圣杯布局和双飞翼布局解决的问题是一样的,都是两边定宽,中间自适应的三栏布局,中间栏要在放在文档流前面以优先渲染。

简单说起来就是双飞翼布局比圣杯布局多创建了一个div,但不用相对布局了,少设置几个属性。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231091.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号