面试题:谈谈对Flex布局的理解

一、概念:flex布局是flexible box的缩写,任何一个容器都可以指定为弹性布局

二、轴线:有两条轴线,即主轴(main axis)和交叉轴(cross axis),可以理解为x,y两个方向,交叉轴(侧轴)是垂直于主轴方向的轴线,主轴轴线是由flex-direction决定的

(1)主轴:flex-direction设为row或者是row-reverse(反方向),你的主轴将沿着x轴方向延伸;设为column或者是column-reverse(反方向),你的主轴将沿着y轴方向延伸

(2)侧轴(交叉轴):flex-direction设为row或者是row-reverse(反方向),交叉轴就是垂直方向;设为column或者是column-reverse(反方向),交叉轴就是水平方向

三、容器的6个属性:

(1)flex-direction决定主轴的方向,默认值为row 值有row,row-reverse,column,column-reverse

(2)flex-wrap定义了容器内的项目沿着轴线布局时是否换行,默认值为nowrap 值有nowrap ,wrap,wrap-reverse(反向换行,多余的行会逆文档流方向折行显示)

(3)flex-flow是flex-direction和flex-wrap的组合简写

(4)align-items属性可以使元素在交叉方向对齐,默认值为:stretch 值有 stretch(如果项目未设高度或设为auto,将沾满整个容器的高度),baseline(项目第一行文字的基线对齐),flex-start(交叉轴的起点对齐),flex-center,flex-end

(5)justify-content定义项目在主轴的对齐方式,默认值为:flex-start 值为flex-start(从首行起始位置开始排列),center,flex-end,space-around,space-between,space-evenly(兼容性差,iPhone SE不支持)

(6)align-content定义多个项目多根轴线的对齐方式,只有一个轴线时没有作用,也就是说如果成员只有一行那么这个属性就没有什么用,默认值为stretch,值为stretch(轴线占满整个交叉轴)flex-start,flex-end,center,space-between,space-around

四、项目的6个属性

(1)order决定项目在主轴方向上的排列顺序,数值越小,排列越靠前,默认值为零

(2)flex-basis决定了在分配额外空间之前,成员占据的空间,默认值为auto;当一个元素同时被设置了flex-basis和width,flex-basis具有更高的优先级,只有flex-basis设置为auto时,width才会生效

(3)flex-grow决定了对剩余空间的占据量,只有在空间有冗余的时候这一属性才有用。默认值是 0,意思就是即使有多余空间,它也占据。如果给多个成员设置正值,那么他们会根据正值所占的比例的大小分配剩余空间。

(4)flex-shrink 只有在没有额外空间时起作用,意思是没有额外空间时,成员贡献出空间的大小。默认值为 1,如果为 0 意思是不贡献空间,也就是说即使空间不足,成员大小也不发生改变。

(5)flex决定了弹性项目如何增大或缩小以适应其弹性容器中可用的空间。是 flex-grow、flex-shrink和flex-basis 组合简写,默认值为:0 1 auto 。它还有以下2个可选值:auto(等同于flex:1 1 auto 意思就是沾满额外空间,可缩放) none(等同于flex:0 0 auto 意思是不占额外空间,不可缩放)

(6)align-self决定了项目在容器中的对齐方式,并且会覆盖容器已有的align-items的值 ;注意: align-self 属性不适用于块类型的盒模型和表格单元。如果任何项目的侧轴方向 margin 值设置为 auto,则会忽略 align-self。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值