弹性盒子flex的基本介绍


此篇为理论知识,实际练习操作请看这篇: 练习(弹性盒子)

弹性盒子

是一种用于在页面上布置元素的布局模式

弹性布局是指通过调整其内元素的宽高,从而在任何显示设备上实现对可用显示空间最佳填充的能力。弹性容器扩展其内元素来填充可用空间,或将其收缩来避免溢出。

父元素设置为dispaly:flex;
或者取值为 inline-flex

image
图片转自MDN

  • “容器”中有两条垂直的坐标轴
  • 横向的叫做主轴
  • 纵向的叫做交叉轴
  • 主轴左边与右边分别叫做主轴起点与主轴终点
  • 交叉轴上边与下边分别叫做交叉轴起点与交叉轴终点
  • 每个项目的宽与高叫做主轴尺寸与交叉轴尺寸

flex-flow

flex-flow是flex-direction和flex-wrap的复合属性
两个属性都是必写的

flex-direction

属性指定了内部元素是如何在 flex 容器中布局的,定义了主轴的方向(正方向或反方向)

  • row——子元素每块在父元素内从左向右排列

  • row-reverse——子元素每块在父元素内从右向左排列

  • column——子元素每块在父元素内依次从上到下排列

  • column-reverse——子元素每块在父元素内从下往上排列

flex-wrap

弹性盒的项目默认都是排列在一个轴上的
如果项目多的话,会“弹性”压缩在一行

取值:
默认值为nowrap

  • nowrap——flex 的元素被摆放到到一行,这可能导致溢出 flex 容器。 cross-start 会根据 flex-direction 的值 相当于 start 或 before。

  • wrap——flex 元素 被打断到多个行中。cross-start 会根据 flex-direction 的值选择等于start 或before。cross-end 为确定的 cross-start 的另一端。

  • wrap-reverse和 wrap 的行为一样,但是 cross-start 和 cross-end 互换。

justify-content

justify-content属性定义了项目在主轴上的对齐方式

属性值如下:

  • flex-start:左对齐(默认)
  • flex-end:右对齐
  • center:居中
  • space-between:两端对齐(项目间间隔相同)
  • space-around:两端间隔对齐(项目间间隔是项目与边框间隔的2倍)
  • space-evently:平分空白对齐

align-items

align-items属性定义项目在交叉轴上如何对齐

属性值如下:

  • stretch:未设置高度(或height: auto)的项目占满整个容器高度(默认)
  • flex-start :交叉轴起点对齐
  • flex-end:交叉轴终点对齐
  • center:交叉轴中点对齐
  • baseline:项目第一行文字的基线对齐

align-content

align-content属性定义多根轴线的对齐方式
这个属性只有在容器有多条主轴是才有效,一条主轴无效
类似于justify-content属性
属性值如下:

  • stretch:轴线占满整个交叉轴(默认值)
  • flex-start:与交叉轴的起点对齐
  • flex-end:与交叉轴的终点对齐
  • center:与交叉轴的中点对齐
  • space-between:与交叉轴两端对齐,轴线间间隔相等
  • space-around:每根轴线两侧的间隔都相等

order

order允许我们自定义项目的排列顺序

默认为0,属性值是数字,数值越小越靠前

flew

flex是flex-grow、flex-shrink、flex-basis的复合属性

默认值:0 1 auto,后两个属性可选

可以写关键字:auto (1 1 auto) 和 none (0 0 auto)

flex-grow

flex-grow定义项目的放大比例
默认是0,不变化

按照比例平分空白区域

flex-shrink

flex-shrink定义项目的缩小比例
默认是1,就是如果空间不足,该项目将等比缩小

通过这个属性我们可以控制各个项目缩小的比例

flex-basis

flex-basis定义在分配多余空间之前,项目占据的主轴空间

默认auto,就是项目本来的宽度

可以手动设置长度

##align-self
align-self属性允许某个项目拥有不同对齐方式

因此会覆盖align-items设置的对齐属性

默认值auto,继承弹性容器的align-items属性值

属性值除了auto外,和align-items一样,

  • auto
  • stretch
  • flex-start
  • flex-end
  • center
  • baseline
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值