flex布局详解

flex布局(Flexible布局,弹性布局)
两个重要的概念:
开启了flex布局的元素叫 flex container
flex container里面的直接子元素叫做 flex items
父元素开启flex布局:display:flex/inline-flex flex(块级元素)/inline-flex(行内元素)
flex container里的属性:
flex-direction
display:flex(开启flex布局)
flex-direction:(决定主轴的方向)
flex items 默认都是沿着main axis(主轴)从main start开始往main end方向排布
flex-direction决定了main axis的方向,有4个值
1,row(主轴从左到右默认值),
2,row-reverse(主轴从右向左)
3,column(主轴从上到下),
4,column-reverse(主轴从下到上)

Justify-content
Justify-content决定了flex itemsmain axis上的对齐方式
1,flex-start(默认值):与main start对齐
2,flex-end:与main end对齐
3,center:居中对齐
4,space-between:flex items之间的距离相等与main start,main end两端对齐
5,space-evenly:flex items之间的距离相等,flex itemsmain start,main end之间的距离等于flex items之间的距离
6,space-around:flex items之间的距离相等flex items与main start,main end之间的距离是flex items之间的一半
align-items
align-items决定了flexitemscrossaxis上的对齐方式
1.normal:在弹性布局中,效果和stretch一样
2.stretch:当flex itemscross axis方向的sizeauto时,会自动拉伸至填充flex container
3.flex-start:与cross start对齐
4.flex-end:与cross end对齐
5.center:居中对齐
6.baseline:与基准线对齐
flex-wrap
flex-wrap决定了flex container是单行还是多行
1.nowrap(默认)单行
2.wrap:多行
1.wrap-reverse:多行(对比wrap,cross startcross end相反 )
align-content
align-content决定了多行flex itemscross axis上的对齐方式,用法与justify-content类似
1.stretch(默认值):与align-itemsstretch类似
2.flex-start:与cross start对齐
3.flex-end:与cross end对齐
4.center:居中对齐
5,space-between:flex items之间的距离相等与cross start,cross end两端对齐
6,space-around:flex items之间的距离相等flex items与cross start,cross end之间的距离是flex items之间的一半
7,space-evenly:flex items之间的距离相等,flex itemscross start,cross end之间的距离等于flex items之间的距离
flex items里的属性:
order
order决定了flex items的排布顺序
可以设置任意整数(正整数,负整数,0),值越小就越排在前面,默认值是0
align-self
flex items可以通过align-self覆盖flex container设置的align-items设置
stretch,flex-start,flex-end,center,baseline效果跟align-items一致
flex-grow
flex-grow决定了flex items如何扩展
可以设置任意非负数字(正小数,正整数,0),默认值是0
flex containermain axis方向上有剩余size时,flex-grow属性才会有效
如果所有flex itemsflex-grow总和sum超过1,每个flex item扩展的sizeflex container的剩余size*flex-grow÷sum
如果所有的flex itemsflex-grow总和不超过1,每个flex item扩展的sizeflex container的剩余size*flex-grow
flex items扩展后的最终size不能超过max-width/max-height
flex-shrink
flex-shrink决定了flex items如何收缩
可设置任意非负数字(正小数,正整数,0),默认值是1
flex itemsmain axis方向上超过了flex containersize,flex-shrink属性才会有效
如果所有flex itemsflex-shrink总和超过1,每个flex item收缩的sizeflex items超出flex containersize*收缩比例/所有flex items的收缩比例之和
如果所有flex itemsflex-shrink总和sum不超过1,每个flex item收缩的sizeflex items超出flex containersize*sum*收缩比例/所有flex items的收缩比例之和
收缩比例=flex-shrink*flex item的base size
base size就是flex item放入flex container 之前的size
flex items收缩后的最终size不能小于min-width/min-height
flex-basis
flex-basis用来设置flex itemsmain axis方向上的base size
auto(默认值),具体的宽度数值(100px)
决定flex items最终base size的因素,从优先级高到低
max-width/max-height/min/width/min-height
flex-basis
width/height
内容本身的size
flex
flexflex-grow//flex-basis的简写,flex属性可以指定1个,2个或者3个值
单值语法值必须为一下其中之一
一个无单位数(number)他会被当做的值
一个有效的宽度(width)值他会被当做的值
关键字none ,autoinitial
双值语法:第一个值必须为一个无单位数,并且他会被当做的值
第二个值必须为一下之一
一个无单位数,他会被当做的值
一个有效的宽度值:他会被当做的值
三值语法
第一个值必须为一个无单位数,并且他会被当做的值
第二个值必须为一个无单位数,并且他会被当做的值
第一个值必须为一个有效的宽度值,并且他会被当做的值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值