flex

作者: jluemmmm | 来源:发表于2020-10-15 13:31 被阅读0次

设为 flex布局以后,子元素自动成为容器成员,子元素的 float、clear、和 verticle-align 属性将失效。

flex-direction

flex-direction决定主轴的方向

.box{
  flex-direction: row; /* 默认值,主轴为水平方向,起点在左 */
  flex-direction: row-reverse; /* 主轴为水平方向,起点在右 */
  flex-direction: column; /* 主轴为垂直方向,起点在上*/
  flex-direction: column-reverse; /* 主轴为垂直方向,起点在下*/
}

flex-wrap

.box{
  flex-wrap: nowrap; /* 默认,不换行 */
  flex-wrap: row-reverse; /* 换行,第一行在上 */
  flex-wrap: wrap-reverse; /* 换行,第一行在下*/
}

flex-flow

flex-flowflex-directionflex-wrap的简写形式,默认为row nowrap

.box{
  flex-flow: flex-direction flex-wrap;
}

justify-content

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

.box{
  justify-content: flex-start; /* 默认,左对齐 */
  justify-content: flex-end; /* 右对齐 */
  justify-content: center; /* 居中*/
  justify-content: space-between; /* 两端对齐,项目之间的间隔相等,不会在容器和块之间产生距离 */
  justify-content: space-around; /* 每个项目两侧的间隔相等,项目之间的间隔比项目与边框之间的间隔大一倍 */
}

align-items

align-items定义项目在交叉轴上的对齐方式

.box{
  align-items: flex-start; /* 交叉轴的起点对齐 */
  align-items: flex-end; /* 交叉轴的终点对齐 */
  align-items: center; /* 交叉轴的中点对齐*/
  align-items: baseline; /* 项目的第一行文字的基线对齐 */
  align-items: stretch; /* 如果项目未设置高度或设置为 `auto`,将占满整个容器的高度 */
}

align-content

align-content 定义多根轴线的对齐方式,如果项目只有一根轴线,该属性不起作用。

.box{
  align-content: flex-start; /* 与交叉轴的起点对齐 */
  align-content: flex-end; /* 与交叉轴的终点对齐 */
  align-content: center; /* 与交叉轴的中点对齐*/
  align-content: space-between; /* 与交叉轴两端对齐,轴线之间的间隔平均分布 */
  align-content: space-around; /* 每根轴线两侧的间隔相等,轴线之间的间隔比轴线与边框的间隔大一倍 */
  align-content: stretch; /* 轴线占满整个交叉轴 */
}

设置在项目上的属性

  • order

order 定义项目的排列顺序。数值越小,排列越靠前,默认为0

  • flex-grow

flex-grow定义项目放大比例,默认为0,即如果存在剩余空间,也不放大。如果所有项目的 flex-grow 属性为2,其他项目都为1,则前者占据的剩余空间将比其他项目多一倍。

  • flex-shrink

flex-shrink定义项目缩小比例,如果空间不足,该项目将缩小。如果一个项目的flex-shrink属性为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目为1,则空间不足时,前者不缩小,后者缩小。

  • flex-basis

flex-basis属性定义在分配多余空间之前,项目占据的主轴空间。浏览器根据这个属性,计算主轴是否有多余空间,默认值为 auto,设置为具体的数值后,项目将占据固定空间。

  • flex

flex属性是 flex-grow, flex-shrinkflex-basis的简写,默认值为 0 1 auto,后面两个属性可选。属性有两个快捷值 auto(1 1 auto)none(0 0 auto)flex: 1相当于
https://www.zhangxinxu.com/wordpress/2020/10/css-flex-0-1-none/

.class-name {
  flex-grow: 1; /* 定义项目放大比例 */
  flex-shrink: 1; /* 定义项目缩小比例*/
  flex-basis: 0%;  /* 定义项目占据的主轴空间*/
}
  • align-self

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖 align-item属性,默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

参考:
flex布局教程:语法篇
flex布局教程:实例篇

相关文章

网友评论

      本文标题:flex

      本文链接:https://www.haomeiwen.com/subject/njtwpktx.html