关于双飞翼布局的个人操作总结
2017-05-23 21:39
302 查看
今天boss让我用双飞翼布局实现一个文字左右都有图片的三列效果,虽然最后把双飞翼研究明白了,但是效果的预期没有达到,最后就用其他方法了,但是学习的过程值得记录下来,以便后续使用时,方便查阅。
首先,我想说的是,很多框架都支持响应式布局,而双飞翼只是一种不依赖框架的针对三列布局的一种解决方案。
双飞翼布局能够解决的问题:
1、两边列宽度固定,中间列宽度自适应式布局;
2、中间内容区先被加载。实现方法:
第2点比较好实现,只要把中间内容区写在最前面那么就会被先加载。
接下来就是实现这种布局了,首先我们想让中间区域能够宽度自适应,那么我们需要把中间区域的div设置成“width=100%”,两边区域的div也设置一下宽度,这里我都设置成”width=200px”。那么左右两边的div就会被挤到下一行中。
既然如此敲黑板的地方就到了,首先我们想办法将左边的div放到左边,那么我们将其margin-left设置成-100%(这里设置负值的原因,是在浮动情况下,将外边距设置成负值,div会向上层移动,而设置成-100%,则能够保证div上移到最左边),如下:
下面同理我们要想将右边的div能够与上面的同行显示在右边,那么我们给右边的div设置一个“margin-left=-200px”,大家可以注意到这里的负值与div的宽度相等,结果如下:
到了这里当然还没有结束,大家应该已经注意到,内容区的文字不见了,是因为左div将其挡住了,为了不让左右div挡住中间内容,我们还要给中间的div中加一个子div并给其设置一个“margin:0 200px”。
如此就将双飞翼的效果实现出来啦,所有的代码入下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>双飞翼布局</title> <style> .main, .left, .right { float: left; height: 100px; color: #fff; } .main { width: 100%; background: red; } .main-content { margin: 0 200px; } .left, .right { width: 200px; } .left { background: green; margin-left: -100%; } .right { background: blue; margin-left: -200px; } </style> </head> <body> <div class="wrap"> <div class="main"> <div class="main-content"> 我是中间内容区~ </div> </div> <div class="left">我是左边</div> <div class="right">我是右边</div> </div> </body> </html>
在最后说下双飞翼布局的优点:
1、可以实现主要内容区先加载;
2、兼容主流浏览器;
3、布局灵活,改变css即可改变布局方式。
相关文章推荐
- 关于WCF操作重载的个人总结
- 黑马程序员--Java基础加强--14.利用反射操作泛型III【解析关于泛型类型的细节信息的获取方法】【Method与泛型相关的方法】【个人总结】
- 关于activity工作流常用操作(个人总结)
- javascript 操作checkbox个人总结
- [转]关于内存地址的个人理解和操作原理
- DataGrid的列操作个人总结
- DataGrid的列操作个人总结
- JAVA与C++::关于JNI中文字符串操作问题总结
- 关于Hibernate操作数据库为空(数值类型)以及引起的问题的一点点总结
- 关于sql的一些个人总结
- 关于PHP操作文件的一些FAQ总结
- DataGrid的列操作个人总结
- 关于UNICODE,ANSI字符集和相关字符串操作的总结
- 关于EXT使用蒙版和单操作(添加,修改,导入)的一点点总结
- Oracle数据库的导入,个人实际操作总结
- 关于文件流的阅读笔记(文件操作相关总结) [[ 应用过 ]]
- Asp+Sql 个人总结对数据库的各种操作
- 关于PHP操作文件的一些FAQ总结
- 关于C#操作INI文件的总结
- 关于DataGrid模板列里的Checkbox全选个人总结