博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flex 整理 笔记
阅读量:6268 次
发布时间:2019-06-22

本文共 1793 字,大约阅读时间需要 5 分钟。

flex 会影响float吗?
设为Flex布局后,子元素的float、clear、vertical-align属性将失效。
 

 

flex的两个核心概念:容器  和 轴

容器具有这样的特点:父容器可以统一设置子容器的排列方式,子容器也可以单独设置自身的排列方式,如果两者同时设置,以子容器的设置为准。
 
父容器:
主轴上如何分布  justify-content: center \ flex-start \ flex-end \ space-around(两边有空间) \ space-between(两边没有空间)
交叉轴上单行如何分布  align-items: center \ flex-start \ flex-end \ baseline \ stretch (子没有设高度)
交叉轴上多行如何分布(只有一行的时候不起作用)   align-content : flex-start | flex-end | center | space-between | space-around | stretch;
主轴的方向:flex-direction:row | column | row-reverse | column-reverse
 
子元素:
flex-grow: 
flex-shrink: 
flex-basis: 

flex-grow  flex-shrink  flex-basis

如果父级的空间足够:flex-grow有效,flex-shrink无效。
如果父级的空间不够:flex-shrink 有效,flex-grow无效
 
flex-basis  
相当于是width,可以设置具体的数值,
如何和width冲突,听flex-basis的;
 
 
flex-grow
当父元素的宽度大于他的所有子元素的的宽度总和的时候,才会生效;
默认是0,表明自己不参与索取,剩下的空间和它没有关系;
不为flex:0 的元素将瓜分剩下的元素,瓜分的大小,是
其flex-grow的值占所有flex-grow的值的比例
flex-grow和width 可以同时设置,flex-grow 可以设置任意的数字;
  1. 父元素宽400px,有两子元素:ABA宽为100pxB宽为200px
  2. 则空余空间为400-(100+200)=100px
  3. 如果AB都不索取剩余空间,则有100px的空余空间。
  4. 如果A索取剩余空间:设置flex-grow1B不索取。则最终A的大小为自身宽度(100px)+剩余空间的宽度(100px)=200px
  5. 如果AB都设索取剩余空间,A设置flex-grow1B设置flex-grow2。则最终A的大小为自身宽度(100px)+ A获得的剩余空间的宽度(100px(1/(1+2))),最终B的大小为自身宽度(200px)+ B获得的剩余空间的宽度(100px(2/(1+2)))
 
flex-shrink
 
当父元素的宽度小于他的所有子元素的的宽度总和的时候,才会生效;
不设置默认是flex-shrink=
1,会同比缩小;设置了flex-shrink 为0的元素不参与上缴空间;
 
设置了flex-shrink 不为1的元素将被上缴空间;
如何消化 ? 首先是每个项目的
wdith
值乘以
flex-shrink
值求积,

A:(155 * 2) = 310

B:(200 * 1) = 200
C:(50 * 1) = 50

然后再求和所有项目的乘积。

(310 + 200 + 50) = 560

得到求占比之后还要乘以要腾出的空间。

A:(310 / 560) * 105 = 58.125

B:(200 / 560) * 105 = 37.5
C:(50 / 560) * 105 = 9.375

得到每一项要腾出的空间後然後

A:(155 - 58.125) = 96.875

B:(200 - 37.5) = 162.5
C:(50 - 9.375) = 40.625

好了,这样就得出计算后的宽度了。

 

每一个元素都求出 宽度  * flex-shrink 占各个元素 宽度 * flex-shrink 总和的比例,这个比例去认领不足的空间;

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/dujuncheng/p/6901651.html

你可能感兴趣的文章
java 项目相关 学习笔记
查看>>
numpy opencv matlab eigen SVD结果对比
查看>>
WPF获取某控件的位置,也就是偏移量
查看>>
Boost C++ 库 中文教程(全)
查看>>
solr查询优化(实践了一下效果比较明显)
查看>>
jdk目录详解及其使用方法
查看>>
说说自己对RESTful API的理解s
查看>>
通过layout实现可拖拽自动排序的UICollectionView
查看>>
服务器错误码
查看>>
javascript中的面向对象
查看>>
Splunk作为日志分析平台与Ossec进行联动
查看>>
yaffs文件系统
查看>>
Mysql存储过程
查看>>
NC营改增
查看>>
Lua
查看>>
Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录
查看>>
postgresql 获取刚刚插入的数据主键id
查看>>
C# Activex开发、打包、签名、发布 C# Activex开发、打包、签名、发布 [转]
查看>>
05-Vue入门系列之Vue实例详解与生命周期
查看>>
验证码展示
查看>>