您现在的位置是:网站首页> 编程资料编程资料
JavaScript圣杯布局与双飞翼布局实现案例详解_javascript技巧_
2023-05-24
747人已围观
简介 JavaScript圣杯布局与双飞翼布局实现案例详解_javascript技巧_
一、圣杯布局和双飞翼布局的功能介绍
- 圣杯布局和双飞翼布局是三栏布局中的两种布局方式,他们实现的效果是相同的,区别就是实现方法。
- header和footer各自占领屏幕所有宽度,高度固定;
- 中间的outer是一个三栏布局;
- 三栏布局中left和right不变,center填充其他地方;
- 中间部分的高度是三栏中最高的区域的高度。

二、圣杯布局
高度如何自适应屏幕高度
- 其实这个并不是圣杯布局中的要求,圣杯布局是可以指定高度的,但是可以作为一个思考;
- 方法就是使用flex布局,将主轴设置为纵轴,再将outer的flex设为1,意思就是填充多余空白,即可达到自适应屏幕高度的效果。
body{ display: flex; width: 100%; height: 100%; flex-direction: column; } .header{ background-color:grey; height: 50px; } .footer{ background-color:grey; height: 50px; } .outer{ flex:1; }圣杯布局思路
- 将center盒子写在最前面,保证center盒子最先渲染;
- 给outer盒子指定padding-left 和 padding-right值,留出left和right的位置;
- 三个盒子都设置float:left,这时left和right就会被挤到下一行;
- left设置margin-left:-100%;相对定位+left:-left的宽度;right设置margin-left=-right的宽度;相对定位+right:-right的宽度即可将两个盒子归位。
圣杯布局代码
headercenterleftright
三、双飞翼布局
双飞翼布局的思路
- 给三个盒子都设置为左浮动;
- center的宽度设为100%;
- left设置margin-left:-100%;right设置margin-left=-right的宽度即可将两个盒子归位,但是将center的两端挡住了;
- 在center盒子中再写一个content盒子,设置margin-left和margin-right为两侧的宽度,content盒子作为内容。
双飞翼布局的代码
headercontentleftright
圣杯布局和双飞翼布局的区别
- 圣杯布局是利用padding将中间部分留出,再利用定位、margin的方式将左右盒子归位,因此不需要外层div;
- 双飞翼布局是先设置中间盒子的宽度为100%,再用margin移动左右盒子覆盖了中间盒子的两侧,再将outer中间加入一个盒子,留出两侧的margin值,达到三栏布局的效果。
四、圣杯布局和双飞翼布局面试问题
回答:圣杯布局和双飞翼布局都可以实现三栏布局,即两侧宽度固定,中间自适应的效果。圣杯布局是先用padding将中间内容留出,再定位左右盒子到相应位置;而双飞翼布局首先将中间盒子的宽度设为了100%,在定位左右盒子的时候会覆盖中间盒子的两端,这样就需要在中间盒子中在定义一个盒子,并留出margin的两侧值。两种布局都需要把center盒子写在left和right前面,为了最先渲染。
到此这篇关于JavaScript圣杯布局与双飞翼布局实现案例详解的文章就介绍到这了,更多相关JS圣杯布局与双飞翼布局内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- react中useState使用:如何实现在当前表格直接更改数据_React_
- Vue常用的修饰符的作用详解_vue.js_
- Vue虚拟DOM详细介绍_vue.js_
- node.js报错:npm ERR code EPERM的解决过程_node.js_
- React前端渲染优化--父组件导致子组件重复渲染的问题_React_
- Vue3 使用v-md-editor如何动态上传图片的方法实现_vue.js_
- 使用JavaScript和CSS实现简单的字符计数器_javascript技巧_
- 详解ES6 中的迭代器和生成器_javascript技巧_
- uni-app调取接口的3种方式以及封装uni.request()详解_javascript技巧_
- uniapp开发微信小程序自定义顶部导航栏功能实例_javascript技巧_
