flex弹性布局

强颜欢笑 提交于 2020-03-01 03:35:29

flex弹性布局

1 什么是弹性布局?

Flex是Flexible Box的缩写,顾名思义为“弹性布局”,用来为盒装模型提供最大的灵活性。
任何容器都可以指定为flex布局。

.box{
	  display:flex;
}

需要注意的是,设为flex布局以后,子元素的float、clear和vertical-align属性将失效。

2 容器的基本属性

第一部分写在父容器上的;

1 flex-direction:

	flex-direction:row(默认值 )
	布局的排列方向:主轴的排列方向,以主轴水平方向排列,起点位置在左端
	
    flex-row-reverse:
    显示为行,但是与row的属性值方向是反的,

	flex-column:显示为列
    主轴为垂直方向,起点在上沿

  flex-column-severse:显示为列
  主轴为垂直方向 ,起点在下沿

2 flex-wrap属性
默认情况下 子项都会排列在一条水平线上,flex-wrap属性定义了,一条线上排不下该怎么换行

	 nowrap: 不换行
	比如:1 2 3 4 5 6  7 8 9都排在一条轴线上
	默认值,不进行换行处理
	
	 wrap:换行
	比如:1 2 3 4 5 6 7
	     8 9第一行在上面
	
	 wrap-severse:反向换行
	 比如: 9 8  7
	        1 2 3 4 5 6 

flex-fiow:

    是flex-direction和flex-wrap的复合写法
    
	flex-flow:flex-direction 和 flex-wrap
	
	顺序是:flex-direction在前面 
	
			lex-wrap在后面

justify-content:
justify-content:属性定义了主轴方向上的子项的对齐方式和分布方式

flex-start:子项在起点位置对齐

flex-end:子项在结束位子对齐

center:子项在中心位置对齐

space-between两端顶对齐
between是中间的意思,就是多余的空白间距在元素中间分配 

space-around:
 around是环绕的意思,意思是每个flex子项两侧都环绕互不干扰的等宽的空白间距,最终视觉上边缘两侧的空白只有中间空白宽度一半。

space-evenly:
 evenly是匀称、平等的意思。也就是视觉上,每个flex子项两侧空白间距完全相等。

align-items:每一行中的子元素上下对齐方式

flex-start:子项在起点对齐
flex-end:子项在终点对齐
center:子项在中心位置对齐

align-content:侧轴的对齐方式
(嘴少两行才能看出效果,因为他是多行的一个上下对齐方式)
flex-start:子项在起点位置对齐

flex-end:子项在结束位子对齐

center:子项在中心位置对齐

space-between两端顶对齐
between是中间的意思,就是多余的空白间距在元素中间分配 

space-around:
 around是环绕的意思,意思是每个flex子项两侧都环绕互不干扰的等宽的         空白间距,最终视觉上边缘两侧的空白只有中间空白宽度一半。
space-evenly:
 evenly是匀称、平等的意思。也就是视觉上,每个flex子项两侧空白间距完全相等。

第二部分

添加到子项上的
flex-grow:扩展
	 0:是默认值,不去扩展
	 1:扩展,会把空白区域全部沾满
	 子元素会按照设置的比例值来分配空隙,如果比例值总和小于1,那么会有空隙,如果比例值总和大于等于1,那么就没有空隙。
flex-shrink:收缩
	 正常默认值是1
      0表示不收缩,.5收缩小一些,2收缩大一些。(大小是跟正常缩放1进行比较的) 

align-self属性

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,等同于stretch。
 .item {
	  align-self: auto | flex-start | flex-end | center | baseline | stretch;
	}
 			

该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

第二次写 博客 写的不好 如果有错其大家提出

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!