CSS - flex

只有主轴和交叉轴,没有横竖之分

  display: flex | inline-flex;

inline-flex 就是 类似于 inline-box 的感觉,对外表现像一个行内元素
父元素设为flex布局后,子元素float属性会失效
项目默认沿主轴排列

容器的属性

flex-direction: row | row-reverse | column | column-reverse;
决定主轴的方向,也就是项目的排列方向,默认值 row

flex-wrap: nowrap | wrap | wrap-reverse;
决定如何换行,不换行的时候会把子元素的尺寸压缩,默认值 nowrap

justify-content: flex-start | flex-end | center | space-between | space-around;
决定项目在主轴上的对齐方式,默认值 flex-start

align-items: flex-start | flex-end | center | baseline | stretch;
决定项目在交叉轴上的对齐方式,默认值 stretch / normal
容器有高度,子元素没高度时,项目在交叉轴上拉伸
stretch 会使交叉轴上的尺寸(宽度或高度)拉伸

align-content: flex-start | flex-end | center | space-between | space-around | stretch;
定义主轴多行或多列之间的对齐方式,类似 align-items

子元素的属性

order: <integer>;
数值越小,排列越靠前,默认是0

flex-grow: <number>;
定义项目的放大比例,默认是0,不放大
分的是主轴上的剩余空间
如果项目中只有一个设置了大于0的值,则该项获得所有剩余空间
如果多个项目设置了大于0的值,则根据值的大小获得剩余空间的份数

flex-shrink: <number>;
项目的缩小比例,默认是1,值为0时不缩小,负值无效
这个属性控制的是项目在主轴方向上的尺寸变化,交叉轴上的空间不够时项目不缩小
不同的数值表示在自身的大小上缩小的份数,分母计算得来:
2/x * 200 + 1/x * 4 * 150 = 200 得出 x = 5

flex-basis: <length> | auto; /* default auto */
定义项目在主轴上的尺寸,推荐使用它代替直接设置主轴上的宽度或高度,因为width 或 height 相当于间接地使 flex-basis 起作用

flex: 0 1 auto; 属性是 flex-grow, flex-shrinkflex-basis 的简写

align-self: auto | flex-start | flex-end | center | baseline | stretch;
等同于align-items,用于设置单个项目在交叉轴上的对齐方式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • What is Flex? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最...
    6ed7563919d4阅读 5,068评论 2 9
  • 1.flex布局的兼容性写法 关于flex布局的兼容性,参考flex兼容性 .flex{ display:-web...
    前端喵阅读 4,485评论 0 0
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,115评论 0 26
  • Flex布局是Css3中新加入的额外布局系统。传统布局基于盒模型,依赖“display”、“position”、“...
    饥人谷_Pizza阅读 6,978评论 0 2
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 8,885评论 0 6