Flex布局知识点整理

Flex布局

一、 传统布局与flex布局

		1. 传统布局  
		
					* 兼容性好
					* 布局繁琐
					* 局限性,不能再移动端很好的布局
	
		2. flex弹性布局 
		
					* 操作方便,布局极为简单,移动端应用广泛
					* PC端浏览器支持情况较差
					* IE 11或更低版本,不支持或仅部分支持
		 * 建议:

					* 如果是PC端页面布局,我们还是用传统布局。
					* 如果是移动端或者不考虑兼容性问题的pc端页面布局,我们还是使用flex

二、Flex布局原理

1. 布局原理

			*  Flex是flexible Box的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为Flex布局。

			* 当我们为父元素设为flex布局以后,子元素的float(浮动)、clear(清除浮动)和vertical-align( 属性设置元素的垂直对齐方式)属性将失效。
			
			* 伸缩布局=弹性布局=伸缩盒布局=弹性盒布局=flex布局
			
			* 采用flex布局的元素,被称为Flex容器(flex container),简称“容器”。它所有的子元素自动成为容器成员,称为Flex项目(flex  item),简称“项目”。
			
			* 体验中的div就是flex父容器。
			
			* 体验中span就是子容器flex项目
			
			* 子容器可以横向排列也可以纵向排列

	*总结flex布局原理:

			* 就是通过给父盒子添加flex属性·,来控制子盒子的位置和排列方式。

三、flex布局父项常见属性

 1.  常见父项属性

			* flex-direction:设置主轴方向
			* justify-content:设置主轴上的子元素排列方式
			* flex-wrap:设置子元素是否换行 
			* aline-content:设置侧轴上的子元素的排列方式的(多行)
			* aline-items:设置侧轴上的子元素排列方式(单行)
			* flex-flow:符合属性,相当于同时设置了flex-direction和flex-wrap

 2.flex-direction设置主轴方向

			1. 在flex布局中,是分为主轴和侧轴两个方向的,同样的叫法有:行和列、x轴和y轴
	
						* 默认主轴方向是x轴方向,水平向右
						* 默认侧轴方向就是y轴方向,水平向下
			2. 属性值

						* row:默认值,从左到右
						* row-reverse:从右到左
						* column:从上到下
						* column-reverse:从下到上
						* flex-direction属性决定主轴的方向(即项目的排列方向)。注意:主轴和侧轴是会变化的,就看flex-direction设置谁为主轴,剩下的就是侧轴,而我们的子元素是跟着主轴来排列的

    3.justify-content 设置主轴上的子元素排列方式

			1. 属性值:

						* flex-star:默认值,从头部开始,如果主轴是x轴,则从左到右
						* flex-end:从尾部开始
						* center:在主轴居中对齐(如果主轴是x轴则水平居中)
						* space-around:平均分配剩余空间
						* space-between:先两边贴边,再平分剩余空间( 重要)
			2. justify-content属性定义了项目在主轴上的对齐方式。注意:使用这个属性之前一定要确定好主轴是哪个

   4.flex-wrap 设置子元素是否换行

			1. 默认情况下,项目都排在一条线上(又称“轴线”)上。flex-wrap属性定义,flex布局中默认是不换行的。
			2. 属性值:

						* nowrap:默认值,不换行
						* wrap:换行

    5.align-items 设置侧轴上的子元素排列方式(单行)

			1. 该属性是控制子项在侧轴(默认是y轴)上的排列方式,在子项为单项的时候使用
			2. 属性值:

						* fle-start:默认值,从上到下
						* flex-end:从下到上
						* center:挤在一起居中(垂直居中)
						* stretch:拉伸

    6.align-content 设置侧轴上的子元素的排列方式(多行)

			1. 设置子项在侧轴上的排列方式并且只能用于子项出现换行的情况(多行),在单行下是没有效果的。
			2. 属性值:
	
						* flex-start:默认值,在侧轴的头部开始排列
						* flex-end:在侧轴的尾部开始排列
						* center:在侧轴的中间显示
						* space-around:子项在侧轴平分剩余空间
						* space-between:子项在侧轴先分布在两头,然后在再平分剩余空间
						* stretch:设置子项元素高度平分父元素高度

		* align-items和align-content的区别:

						* align-items 适用于单行情况下,只有上对齐、下对齐、居中和拉伸
						* align-content 适用于换行(多行)的情况下(单行情况下无效),可以设置上对齐、下对齐、居中、拉神以及平均分配剩余空间等属性值。
						* 总结就是单行找align-items,多行找align-content

    7.flex-flow

						* flex-flow 属性是 flex-direction和flex-wrap 属性的复合属性
			
						* flex-flow:row wrap;      //沿主轴(x轴)方向排列,换行

四、flex布局子项常见属性

	 1. 常见子项属性
						* flex:子项目占的份数
						* align-self:控制子项目自己在侧轴的排列方式
						* order:定义子项目的排列顺序(前后顺序)

    2.flex属性

			1. flex 属性定义子项目分配剩余空间,用flex来表示占多少份数。
			2. 属性值:

						* flex:<number>;  //default(默认值):0

    3.align-self 控制子项自己在侧轴上的排列方式

						* align-self 属性允许单个项目有与其他项目不一样的对齐方式,可以覆盖align-items属性。默认值auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
    
    4.order属性定义项目的排列顺序

						* 数值越小,排列越靠前,默认值为0。
						* 注意:和z-index不一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值