一篇文章掌握flex布局

目录

认识flexbox

flex布局里两个重要的概念

flex布局里的两个轴(主轴和交叉轴)

flex布局属性分类

flex container上的CSS属性

 flex-direction(主轴方向)

flex-wrap(单行还是多行)

flex-flow(flex-direction和flex-wrap的简写形式)

justify-content(主轴上item的分布方式)

align-items(决定了flex items在交叉轴上的对齐方式)

align-content(交叉轴对齐方式)-很少用

 flex-items上的CSS属性

flex-grow(决定了flex items如何扩展)

flex-shrink(决定flex items如何缩小)

flex-basis(设置flex items在主轴上的base size)

order(决定flex items的排布顺序)

align-self(覆盖flex-container设置的align-items)

flex(flex-grow、flex-shrink和flex-basis的简写属性)


认识flexbox

  1. 弹性盒子是一种按行或按列布局元素的一维布局方法
  2. 元素可以膨胀以填充额外的空间,可以收缩适应更小的空间
  3. 通常我们用flexbox来进行布局的方案成为flex布局

flex布局里两个重要的概念

flex container:开启了flex布局的元素叫做flex container(装弹性盒子的容器)

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

  1. flex:flex container 以block-level形式存在
  2. inline-flex:flex container 以 inline-level形式存在

flex item:flex container里面的直接子元素叫做flex item

  1. flex item的布局要受flex container属性的设置来进行控制和布局
  2. flex item不再严格区分块级元素和行内级元素
  3. flex item默认情况下是包裹内容的,但是可以设置宽度和高度

简单来说就是flex item的布局受flex container控制,flex container有行内级和块级的区别,flex item 不严格区分块级和行内级元素

flex布局里的两个轴(主轴和交叉轴)

注意:主轴不一定是水平的,只是默认主轴是水平的,主轴和交叉轴互相垂直

flex布局属性分类

flex布局里面有很多属性,很多小伙伴只是把这些属性死记硬背,如图所示,我们可以将这些属性分为两类,一类是应用在flex container上的属性,一类是应用在flex items上的属性,这样是不是就清晰许多啦。

flex container上的CSS属性

 flex-direction(主轴方向)

当flex-container里的宽度或高度小于flex-items时,flex-wrap将会起作用

  • row(默认值)
  • row-reverse
  • column
  • column-reverse

flex-wrap(单行还是多行)

  • nowrap(默认) 单行
  • wrap 多行

flex-flow(flex-direction和flex-wrap的简写形式)

顺序任意并且都可以省略

justify-content(主轴上item的分布方式)

当flex-container宽度大于flex-items的总宽度时

  • flex-start(默认值):与main start 对齐——类似于左对齐
  • flex-end:与main end 对齐——类似于右对齐
  • center:居中对齐
  • space-between
    • flex items之间的距离相等
    • 与main start、main end两端对齐
  • space-around
    • flex items之间的距离相等
    • flex items与main start、main end之间的距离是flex items之间距离的一半
  • space-evenly
    • flex items之间的距离相等
    • flex items与main start、main end之间的距离等于flex items之间的距离

align-items(flex items在交叉轴上的对齐方式)

  • normal:弹性布局中,效果和stretch一样
  • stretch:当flex items在交叉轴方向的size为auto时,会自动拉伸至填充flex container
  • flex-start:与cross start对齐
  • flex-end:与cross end对齐
  • center:居中对齐
  • baseline:与基准线对齐

align-content-很少用

 flex-items上的CSS属性

flex-grow(flex items如何扩展)

  • 可以设置为任意非负数字(正小数、正整数、0),默认值是0
  • 当flex container在主轴方向上有剩余size时,flex,grow属性才会有效
  • flex items扩展后的最终size不能超过max-width/max-height

flex-shrink(flex items如何缩小)

  • 可以设置为任意非负数字(正小数、正整数、0),默认值是1
  • 当flex items在主轴方向上超过了flex container的size,flex-shrink才会有效
  • flex items收缩后的最终size不能超过min-width/min-height

flex-basis(设置flex items在主轴上的base size)

  • 和width设置没什么区别,当内容为一个长的单词时,内容会把item的宽度撑开

order(flex items的排布顺序)

  • 可以设置任意整数(正整数、负整数、0),值越小就越排在前面(默认值为0)

align-self(覆盖flex-container设置的align-items)

  • auto(默认值):遵从flex container的align-items 设置
  • stretch、flex-start、flex-end、center、baseline,效果跟align-items一致

flex(flex-grow、flex-shrink和flex-basis的简写属性)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值