热门标签 | 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 animation动画属性详解及用法
    本文详细介绍了CSS3 animation动画的各种属性及用法,包括关键帧动画、动画名称、动画时间、动画曲线、动画延迟、动画播放次数、动画状态和动画前后的状态等。通过本文的学习,读者可以深入了解CSS3 animation动画的使用方法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • 本文介绍了在HTML中实现表格的页眉页脚布局的解决方案。通过基本的HTML/CSS技术,避免使用内联样式和固定定位,实现了一个标准的页眉页脚布局。提供了一个替代的解决方案,为读者提供了参考。 ... [详细]
  • Java源代码安全审计(二):使用Fortify-sca工具进行maven项目安全审计
    本文介绍了使用Fortify-sca工具对maven项目进行安全审计的过程。作者通过对Fortify的研究和实践,记录了解决问题的学习过程。文章详细介绍了maven项目的处理流程,包括clean、build、Analyze和Report。在安装mvn后,作者遇到了一些错误,并通过Google和Stack Overflow等资源找到了解决方法。作者分享了将一段代码添加到pom.xml中的经验,并成功进行了mvn install。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • 标题: ... [详细]
  • CSS标签、类名和ID选择器的使用区别
    本文讲解了CSS中标签选择器、类名选择器和ID选择器的使用区别,主要包括加空格和不加空格的区别。通过示例代码,说明了加空格表示选择当前节点的后代节点,而不加空格表示一个元素的多个类名不能加空格的规则。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
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社区 版权所有