序(from Ruanyf) :

网页布局(layout)是 CSS 的一个重点应用.
布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性. 它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现
2009年,W3C 提出了一种新的方案 – Flex 布局,可以简便、完整、响应式地实现各种页面布局.

  1. .container{
  2. display:flex; /*or inline-flex*/
  3. }

设置了.container元素为Flex容器(Flex container),.container的直接子元素被称为Flex项目(Flex item)
Flex元素按照主轴(main-axis)的方向排列,交叉轴(cross-axis)与主轴垂直
主轴的开始和结束被称为 main start 和 main end
交叉轴的开始和结束被称为 cross start 和 cross end

属性 可取值 说明
display flex,inline-flex 指定一个容器是否启用Flex布局
flex-direction row,row-reverse,column,column-reverse 指定主轴(main-axis)的方向
flex-wrap nowrap,wrap,wrap-reverse 指定内容超出一行情况的换行方式
flex-flow <flex-direction> || <flex-wrap> CSS简写属性
justify-content flex-start,flex-end,center,space-between,space-around 指定项目在主轴(main-axis)上的对齐方式
align-items flex-start,flex-end,center,baseline,stretch 指定项目在交叉轴(cross-axis)上的对齐方式
align-content flex-start,flex-end,center,space-between,space-around,stretch 同时指定项目在两根轴线上的对齐方式(如果项目只有一根轴线.该属性不起作用)
属性 可取值 说明
order 指定项目的排列顺序,默认值为0,order相同时按照项目在DOM中的顺序排序
flex-grow 指定项目大小的比例,默认值为0,width属性会优先指定flex-item的最小大小
flex-shrink 指定项目大小在单行空间不足时的收缩比例,默认值为1
flex-basis 指定项目在主轴方向上的初始大小
flex <‘flex-grow’> <‘flex-shrink’> <‘flex-basis’> CSS简写属性
align-self auto,flex-start,flex-end,center,baseline,stretch 指定单个元素的对齐方式,优先级高于align-items属性
  1. /* 关键字值 */
  2. flex: auto;
  3. flex: initial;
  4. flex: none;
  5. /* 一个值, 无单位数字: flex-grow */
  6. flex: 2;
  7. /* 一个值, width/height: flex-basis */
  8. flex: 10em;
  9. flex: 30px;
  10. flex: min-content;
  11. /* 两个值: flex-grow | flex-basis */
  12. flex: 1 30px;
  13. /* 两个值: flex-grow | flex-shrink */
  14. flex: 2 2;
  15. /* 三个值: flex-grow | flex-shrink | flex-basis */
  16. flex: 2 2 10%;
  17. /*全局属性值 */
  18. flex: inherit;
  19. flex: initial;
  20. flex: unset;

详见MDN,Codepen

Flex Bugs https://github.com/philipwalton/flexbugs

Flexbox Properties Demonstration https://codepen.io/justd/full/yydezN/

MDN中文文档 https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Flexbox

MDN 英文文档 https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox

CodingStartUp https://www.bilibili.com/video/BV1qJ411N7TA

CSS-Tricks https://css-tricks.com/snippets/css/a-guide-to-flexbox/

Scotch.io https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties

现在版本为V1.0
详见 Github(@flightmakers)

版权声明:本文为flightmakers原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/flightmakers/p/Archives002.html