您现在的位置是:网站首页> 编程资料编程资料
css实现三栏布局的几种方法及优缺点CSS经典三栏布局方案(6种方法)浅谈CSS三栏布局的N种实现CSS实现三栏布局的四种方法示例CSS三栏布局探讨——中间固定宽度两边自适应宽度CSS Float布局过程与老生常谈的三栏布局 DIV+CSS 三栏布局实例代码
2021-09-04
973人已围观
简介 三栏布局在实际的开发十分常见,比如淘宝网的首页,即左边商品导航和右边导航固定宽度,中间的主要内容随浏览器宽度自适应,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
前言
三栏布局,顾名思义就是两边固定,中间自适应。三栏布局在实际的开发十分常见,比如淘宝网的首页,就是个典型的三栏布局:即左边商品导航和右边导航固定宽度,中间的主要内容随浏览器宽度自适应。

我们不妨假定这样一个布局:高度已知,其中左栏、右栏宽度各为300px,中间自适应,可以通过几种方法来实现?以及各自的优缺点是什么?
本文源代码请猛戳三栏布局源码,欢迎star和fork

一、浮动布局
Layout 三栏布局
// 右栏部分要写在中间内容之前 浮动解决方案
1.这是三栏布局的浮动解决方案; 2.这是三栏布局的浮动解决方案; 3.这是三栏布局的浮动解决方案; 4.这是三栏布局的浮动解决方案; 5.这是三栏布局的浮动解决方案; 6.这是三栏布局的浮动解决方案;

这种布局方式,dom结构必须是先写浮动部分,然后再中间块,否则右浮动块会掉到下一行。
浮动布局的优点就是比较简单,兼容性也比较好。但浮动布局是有局限性的,浮动元素脱离文档流,要做清除浮动,这个处理不好的话,会带来很多问题,比如父容器高度塌陷等。
二、绝对布局
三栏布局
绝对定位解决方案
1.这是三栏布局的浮动解决方案; 2.这是三栏布局的浮动解决方案; 3.这是三栏布局的浮动解决方案; 4.这是三栏布局的浮动解决方案; 5.这是三栏布局的浮动解决方案; 6.这是三栏布局的浮动解决方案;
绝对定位布局优点就是快捷,设置很方便,而且也不容易出问题。缺点就是,容器脱离了文档流,后代元素也脱离了文档流,高度未知的时候,会有问题,这就导致了这种方法的有效性和可使用性是比较差的。
三、flexbox布局
三栏布局
flexbox解决方案
1.这是三栏布局的浮动解决方案; 2.这是三栏布局的浮动解决方案; 3.这是三栏布局的浮动解决方案; 4.这是三栏布局的浮动解决方案; 5.这是三栏布局的浮动解决方案; 6.这是三栏布局的浮动解决方案;
flexbox布局是css3里新出的一个,它就是为了解决上述两种方式的不足出现的,是比较完美的一个。目前移动端的布局也都是用flexbox。 flexbox的缺点就是IE10开始支持,但是IE10的是-ms形式的。
四、表格布局
三栏布局
表格布局解决方案
1.这是三栏布局的浮动解决方案; 2.这是三栏布局的浮动解决方案; 3.这是三栏布局的浮动解决方案; 4.这是三栏布局的浮动解决方案; 5.这是三栏布局的浮动解决方案; 6.这是三栏布局的浮动解决方案;
表格布局的兼容性很好(见下图),在flex布局不兼容的时候,可以尝试表格布局。当内容溢出时会自动撑开父元素。
表格布局也是有缺陷:①无法设置栏边距;②对seo不友好;③当其中一个单元格高度超出的时候,两侧的单元格也是会跟着一起变高的,然而有时候这并不是我们想要的效果。

五、网格布局
三栏布局
网格布局解决方案
1.这是三栏布局的浮动解决方案; 2.这是三栏布局的浮动解决方案; 3.这是三栏布局的浮动解决方案; 4.这是三栏布局的浮动解决方案; 5.这是三栏布局的浮动解决方案; 6.这是三栏布局的浮动解决方案;
CSS Grid是创建网格布局最强大和最简单的工具。就像表格一样,网格布局可以让Web设计师根据元素按列或行对齐排列,但他和表格不同,网格布局没有内容结构,从而使各种布局不可能与表格一样。例如,一个网格布局中的子元素都可以定位自己的位置,这样他们可以重叠和类似元素定位。
但网格布局的兼容性不好。IE10+上支持,而且也仅支持部分属性。
六、总结
通过上面详细介绍五种布局的优缺点,在实际开发中最优选择哪种布局?相信读者心中会有自己的答案。
我觉得flex和grid布局就可以搞定实际开发中的布局,假设浏览器都支持这两个模块,你将选择grid还是flexbox来给页面布局?flexbox是一维布局,他只能在一条直线上放置你的内容区块;而grid是一个二维布局。前面也简单说到,你可以根据你的设计需求,将内容区块放置到任何你想要放的地方。那么不用多说,你应该知道哪一种更适合你的布局。此外,如果要兼容低版本的IE(比如IE8+),可以考虑table布局。
最后问大家一个问题,如果中间部分被内容高度撑开,需要左右栏也撑开,这五种布局哪些布局还可以用?
答案:flex布局和table布局


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- css两端对齐之div+css布局实现2端对齐的4种方法总结css 文本两端对齐应用实例css文本两端对齐的实现代码
- 使用纯 CSS 创作一个脉动 loader效果的源码7种纯CSS3 Loader加载指示器特效源码纯CSS3实现的29款超全页面加载loading动画库Loaders.css特效源码使用Loader.css和css-spinners来制作加载动画的方法CSS3制作ajax loader icon实现思路及代码
- 详解CSS文件的三种引入方式css样式引入方式及优缺点介绍关于CSS引入方式的详细见解小结html引入css四种引入方式示例分享Css基本概念及其引入方式介绍详解CSS文件中的4种引入方式:行内,内联式,外部式,导入式
- 浅谈遇到的几个浏览器兼容性问题针对IE浏览器的兼容问题小结避免不必要的浏览器兼容性问题的5个技巧兼容主流浏览器的CSS透明代码(必看篇)浅谈浏览器的兼容性(必看篇)关于遇到的浏览器兼容问题及应对方法(推荐)
- CSS 实现滚动的图片栏 实例代码DIV+CSS仿百度图片栏目搜索页面模板特效源码基于jquery+css3实现的通栏响应式图片轮播动画特效源码CSS新特性:圆角边框多栏Gird布局背景设置
- CSS 小结笔记之变形、过渡与动画的示例浅谈CSS3中的变形功能-transform功能CSS3 三维变形实现立体方块特效源码使用CSS的border属性构建变形边框的方法总结CSS3中设置3D变形的transform-style属性详解深入剖析CSS变形transform(3d)CSS制作图形变形弹出效果的示例分享
- CSS3 Flex 弹性布局实例代码详解CSS3中的弹性布局em运用入门详解 1em等于多少像素css3弹性盒子flex实现三栏布局的实现10分钟理解CSS3 FlexBox弹性布局css flex 弹性布局详解CSS弹性布局FLEX,媒体查询及移动端点击事件的实现
- css和html的四种结合方式CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- 详解CSS Sprite雪碧图的应用CSS Sprites雪碧图技术基础学习指南
- 详解css外边距折叠(margin collapsing)如何只使用CSS创建折叠标题效果的示例代码详解CSS外边距折叠引发的问题纯CSS实现可折叠树状菜单纯CSS实现圆角折叠菜单的方法CSS 实现 图片鼠标悬停折叠效果
