热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

页面多列布局

多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局)这里我会先讲两列布局中的定宽与自适应布局,然后再拓展到不定宽与自适应布局,最后再讲一下三列布局,

多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局)  

这里我会先讲两列布局中的定宽与自适应布局,然后再拓展到不定宽与自适应布局,最后再讲一下三列布局,由此衍生到四列五列等多列布局。

先讲解两列布局的多种解决方案。
老规矩,现在HTML文档BODY下写入:
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
  接着CSS设置parent主容器背景颜色为浅灰色,left背景颜色为黑色,right背景颜色为深灰色:
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
  这时候我们得到的效果图以及我们最终想要的定宽与自适应两列布局的效果图如下:
原始效果图: 多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客 

最终效果图: 多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客(两列布局之间边距为10px)
好了,不废话了!

两列布局的第一种解决方案:float+margin
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
  这种解决方案的优点就是:兼容性很好(IE6不兼容,在IE6下right右边布局文字会缩进3px,需要在left样式加上margin-right:-100px);缺点就是只能设置定宽与自适应两列布局,无法拓展至不定宽与自适应两列布局。
解决IE6兼容性问题,需修改下HTML结构:
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客(即在right容器外再套一个容器right-fix)
同时,CSS需更换为:
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
  也就是说,解决方案优化为:float+margin+(fix),不过这个解决方案还是无法用于不定宽与自适应两列布局。

两列布局的第二种解决方案:float+overflow
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
这种解决方案的优点就是兼容性很好(除了IE6不支持),而且能够用于不定宽与自适应两列布局(只需把 width: 100px去掉即可变为不定宽与自适应两列布局)。

两列布局的第三种解决方案:table
    多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
  这种解决方案的缺点就是兼容性较差(IE6/7不支持),但是能够用于不定宽与自适应两列布局,同时CSS需更改为:
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
 
  两列布局的第四种解决方案:flex
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
  这种解决方案的缺点就是IE6/7/8/9不支持,IE10需加-ms-前缀才能使用,兼容性差;好处在于可以用于不定宽与自适应两列布局(只需去掉left中 width: 100px;即可)。


那么如果是三列布局或者四列、五列布局呢,这里举一个例子,例如要进行 定宽+定宽+自适应的三列布局:
首先HTML写入:
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
CSS背景颜色跟两列布局一样:
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
  这里采用两列布局的第二种解决方案(float+overflow),我们只需要同时设置left和center就可以:
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
这样就可以得到定宽+定宽+自适应的三列布局,效果图如下:
多列布局的多种解决方案(一)(定宽或不定宽与自适应的布局) - 黄晓林 - 黄晓林的博客
  同样的,去掉 width: 100px;就能得到不定宽+不定宽+自适应的三列布局。
其他三列、四列布局的解决方案由两列布局的解决方案拓展可以得出,万物归一!

推荐阅读
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文详细介绍了W3C标准盒模型和IE传统盒模型的区别,探讨了CSS3中box-sizing属性的使用方法及其在布局中的重要性。通过实例分析,帮助读者更好地理解和应用这一关键概念。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • Vue 2 中解决页面刷新和按钮跳转导致导航栏样式失效的问题
    本文介绍了如何通过配置路由的 meta 字段,确保 Vue 2 项目中的导航栏在页面刷新或内部按钮跳转时,始终保持正确的 active 样式。具体实现方法包括设置路由的 meta 属性,并在 HTML 模板中动态绑定类名。 ... [详细]
  • 本文探讨了如何通过最小生成树(MST)来计算严格次小生成树。在处理过程中,需特别注意所有边权重相等的情况,以避免错误。我们首先构建最小生成树,然后枚举每条非树边,检查其是否能形成更优的次小生成树。 ... [详细]
  • 如何在WPS Office for Mac中调整Word文档的文字排列方向
    本文将详细介绍如何使用最新版WPS Office for Mac调整Word文档中的文字排列方向。通过这些步骤,用户可以轻松更改文本的水平或垂直排列方式,以满足不同的排版需求。 ... [详细]
  • 理解存储器的层次结构有助于程序员优化程序性能,通过合理安排数据在不同层级的存储位置,提升CPU的数据访问速度。本文详细探讨了静态随机访问存储器(SRAM)和动态随机访问存储器(DRAM)的工作原理及其应用场景,并介绍了存储器模块中的数据存取过程及局部性原理。 ... [详细]
  • 几何画板展示电场线与等势面的交互关系
    几何画板是一款功能强大的物理教学软件,具备丰富的绘图和度量工具。它不仅能够模拟物理实验过程,还能通过定量分析揭示物理现象背后的规律,尤其适用于难以在实际实验中展示的内容。本文将介绍如何使用几何画板演示电场线与等势面之间的关系。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文探讨了在Linux系统上使用Docker时,通过volume将主机上的HTML5文件挂载到容器内部指定目录时遇到的403错误,并提供了解决方案和详细的操作步骤。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
author-avatar
hongxiaochen8846_792
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有