flex弹性盒子代码图片详细解释

一.开启了flex布局的元素叫做flex container

flex items默认都是沿着main axis(主轴)从main start开始往main end方向排布

al{      display: flex;   }
<div class="al">        
	<div class="z2">z2</div>        
	<div class="cl">c1</div>       
	<div class="z1">z1</div>   
</div>`  

在这里插入图片描述

虽然z2,c1,z1是盒子块级,但是当父级al设置成 display: flex;他就不在成块级排列,默认成沿着main axis(主轴)从main start开始往main end方向排布。

1.开启flex布局

设置display属性为flex或者inline-flex可以成为flex container

flex以块级元素存在,inline-flex则会变成行内级

2.flex-direction:设置主轴方向

默认是row:flex-direction:row横向从左向右,row-reverse:横向反向,从右向左

column主轴方向从上向下,column-reverse:反向

 .al{       display: flex;       flex-direction: column;     }
3.justify-content:设置flex-items在主轴的对齐方式

flex-start:与main-start对齐;

flex-end:与main-end对齐;

center:居中对齐;

space-between:flex item间的距离相等,与main-start和main-end对齐

.

al{   width: 500px;   
		background-color: chocolate;            
		display: flex;            
		flex-direction: row; //横向主轴排列            
		justify-content: space-between;        
		}


<div class="al">        
	<div class="z2">z2</div>        
	<div class="cl">c1</div>        
	<div class="z1">z1</div>    
</div>  

space-around:flex item间的距离相等,flex item与main-start和main-end之间的距离是flex item间的距离的一半

.al{           
	 width: 500px;            
	 background-color: chocolate;            
	 display: flex;            
	 flex-direction: row;            
	 justify-content: space-around;        
 }

<div class="al">        
	<div class="z2">z2</div>        
	<div class="cl">c1</div>        
	<div class="z1">z1</div> 
</div> 

space-evenly:flex item间的距离相等,flex item与main-start和main-end之间的距离是flex item间的距离也相等

.al{            
	width: 500px;            
	background-color: chocolate;            
	display: flex;            
	flex-direction: row;            
	justify-content: space-evenly;        
}
<div class="al">        
	<div class="z2">z2</div>       
 	<div class="cl">c1</div>        
 	<div class="z1">z1</div>    
 </div>  

在这里插入图片描述

4.align-items:决定flex-items在cross axis(交叉轴)上的对齐方式

normal:在弹性布局中和stretch一样

stretch:当flex items在交叉轴方向的size为auto时,会自动拉伸填充flex container
在这里插入图片描述

flex-start:与cross start对齐

flex-end:与cross end对齐

center:居中对齐

baseline:基线对齐

5.flex-wrap:默认情况下flex items是在一行显示的,当不够时候会压缩item宽度

normal:默认,单行显示

wrap:多行

wrap-reverse:多行相反

6.flex-flow是flex-direction和flex-wrap的缩写属性

flex-flow: row wrap;

7.align-content:决定了flex items在交叉轴的对齐方式,用法和justify-content类似

二.flex container里面的直接子元素叫flex items

1.order:决定了flex items的排列顺序

默认值是0,可以设置成任意的整数,值越小就排在前面。

 <style>        
 .al{            
	 width: 600px;            
	 height: auto;            
	 background-color: chocolate;            
	 display: flex;            
	 flex-direction: row;            
	 justify-content: space-evenly;        
 }        
 .z1{            
	 width: 200px;            
	 height: 200px;            
	 order: 5;            
	 background-color: red;        
 }        
 .z2{            
	 width: 100px;           
	  height: 100px;            
	  order: 2;            
	  background-color: royalblue;        
  }        
  .z3{            
	  width: 100px;            
	  height: 100px;            
	  order: 10;            
	  background-color: seagreen;            
	  display: inline-block;             
	  transition: width 5s linear 2s;        
  }        
  .z2:hover{            
  	width:200px;        
  }    
  </style>
  </head>
  <body>    
	  <div class="al">        
		  <div class="z1">z1</div>        
		  <div class="z2">z2</div>        
		  <div class="z3">z3</div>    
	  </div>  
  </body>
2.align-self:可以给item设置align-self来覆盖flex container设置的align-items

默认auto:遵从align-items设置。

3.flex-grow:决定items如何扩展。

可以设置任意的非负数,默认为0.当在主轴上有剩余空间时,才会生效。当所有的items的grow的总和sum大于一,则每个items扩展大小是:剩余sizeflex-grow/sum;如果sum小于1,则则每个items扩展大小是:剩余sizeflex-grow。

4.flex-shrink:决定items如何收缩

如果items的宽度和大于父元素即container,那么他们就会进行收缩。默认收缩时1.就是每个等分。

5.flex-basis:设置主轴的大小,不过一般用width直接设置。
6.flex:是flex-grow,flex-shrink,flex-basis的简写,可以指定一个值,两个值,三个值

单值:值必须是下面之一:1.一个无单位的数,它会被当flex-grow的值;2.一个有效的宽度值

双值:,第一个必须是无单位的数,它会被当flex-grow的值;第二个值:可以是无单位的数,可以是一个宽度值

三值:第一,第二必须是无单位的值,第三必须是有效的宽度值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值