我,前端菜鸡。今天面百度的时候被问到了所谓的圣杯,双飞翼布局。这两个东西一直都有所了解但是没真正的研究过,所以今天脸都被打肿了!所以今天仔细研究了一下所谓的双飞翼/圣杯布局在这里做一个总结。
所谓的双飞燕/圣杯布局,就是实现所谓的两边定宽,中间宽度随着浏览器的宽度响应式变化。两者的实现方法有略微的不同,这里分别进行分析。
圣杯布局
圣杯布局的实现可以简单理解为:
- 给container设置对应div宽度的padding,三个子div设置
postion:relative
- 左边div设置
margin-left:-100%;left:-左边div宽度
- 右边div设置
margin-left:-右边div宽度;right:右边div宽度
代码如下
css 样式如下:
1 | <style> |
HTML布局
1 | <body> |
效果如图所示
双飞翼布局
双飞燕的实现还是与圣杯布局挺类似的,这里不做过多解释看代码就能了解了。
css代码如下
1 | <style> |
html 布局
1 | <body> |
这里的关键是main中有一个inner,inner 去控制我们所需要的中间列的宽度,marin空出的长度留给left,right.
效果如下