博客列表 >flex容器与项目的常用属性和实例演示

flex容器与项目的常用属性和实例演示

葡萄枝子
葡萄枝子原创
2020年12月23日 00:30:09625浏览

flex容器与项目的常用属性和实例演示

将flex容器与项目的常用属性全部进行实例演示,并理解属性的常用值的显示效果

1. flex容器属性

flex容器 描述 属性
flex-flow 主轴方向与换行 row/column nowrap/wrap
justify-content 项目在主轴对齐方式 center/flex-start/flex-end/space-around/space-between/space-evenly
align-items 项目在交叉轴对齐方式 center/flex-end/flex-start/stretch/baseline
align-content 多行容器对齐方式 center/flex-start/flex-end/space-around/space-between/space-evenly/stretch

2. flex项目常用属性

flex项目 描述 属性
flex 项目伸/缩/宽度 0 1 auto/1
align-self 某个项目自身交叉轴上对齐方式 center/flex-start/flex-end/stretch/baseline/space-around/space-between/space-evenly
order 某个项目主轴上排序顺序 0 默认

3. flex容器实列演示

  • body 标签中添加 container 盒子和项目
  1. <div class="container">
  2. <div class="item">1</div>
  3. <div class="item">2</div>
  4. <div class="item">3</div>
  5. <div class="item">4</div>
  6. </div>
  • style 标签中添加 css 基础样式,转换 container 为 flex 容器
  1. * {
  2. margin: 0;
  3. padding: 0;
  4. box-sizing: border-box;
  5. }
  6. .container {
  7. /* 转为 flex 容器 */
  8. display: flex;
  9. height: 20em;
  10. margin: 1em;
  11. padding: 1em;
  12. border: 1px solid #000;
  13. }
  14. .container>.item {
  15. width: 5em;
  16. height: 3em;
  17. background-color: lightgray;
  18. border: .1rem solid #000;
  19. }

3.1 单行容器示例演示

主轴方向与换行/主轴方向与换行/项目在交叉轴对齐方式

  • style 标签中继续添加样式,单行容器示例演示
  1. /* flex单行容器实列演示 */
  2. /* 主轴方向与换行 */
  3. .container {
  4. /* 默认值:行方向不换行 */
  5. flex-flow: row nowrap;
  6. /* 行方向换行 */
  7. flex-flow: row wrap;
  8. /* 列方向不换行 */
  9. flex-flow: column nowrap;
  10. /* 列方向换行 */
  11. flex-flow: column wrap;
  12. }
  13. /* 项目在主轴对齐方式 */
  14. .container {
  15. /* 设为默认行方向不换行 */
  16. flex-flow: row nowrap;
  17. /* 主轴居中 */
  18. justify-content: center;
  19. /* 左对齐 */
  20. justify-content: flex-start;
  21. /* 右对齐 */
  22. justify-content: flex-end;
  23. /* 分散对齐 */
  24. justify-content: space-around;
  25. /* 两端对齐 */
  26. justify-content: space-between;
  27. /* 平均对齐 */
  28. justify-content: space-evenly;
  29. }
  30. /* 项目在交叉轴对齐方式 */
  31. .container {
  32. /* 拉伸对齐,默认对齐 */
  33. align-items: stretch;
  34. /* 内容基线对齐 */
  35. align-items: baseline;
  36. /* 交叉轴居中 */
  37. align-items: center;
  38. /* 顶部对齐 */
  39. align-items: flex-start;
  40. /* 底部对齐 */
  41. align-items: flex-end;
  42. }
  • 附上示例图

flex单行容器实列演示

3.2 多行容器对齐方式

  • style 继续添加样式
  1. /* flex多行容器实列演示 */
  2. .container {
  3. /* 设为行方向换行 */
  4. flex-flow: row wrap;
  5. /* 主轴对齐左对齐 */
  6. justify-content: flex-start;
  7. /* 交叉轴对齐改为默认拉伸对齐 */
  8. align-items: stretch;
  9. }
  10. .container>.item {
  11. /* 增大项目宽度,使其换行 */
  12. width: 8em;
  13. }
  14. .container {
  15. /* 拉伸对齐 */
  16. align-content: stretch;
  17. /* 主轴居中 */
  18. align-content: center;
  19. /* 左对齐 */
  20. align-content: flex-start;
  21. /* 右对齐 */
  22. align-content: flex-end;
  23. /* 分散对齐 */
  24. align-content: space-around;
  25. /* 两端对齐 */
  26. align-content: space-between;
  27. /* 拉伸对齐 */
  28. align-content: space-evenly;
  29. }
  • 附上示例图

flex单行容器实列演示

4. flex项目常用属性示例演示

  • style 继续添加样式
  1. /* flex项目常用属性示例演示 */
  2. .container {
  3. /* 设为默认行方向不换行 */
  4. flex-flow: row nowrap;
  5. /* 主轴对齐左对齐 */
  6. justify-content: flex-start;
  7. /* 交叉轴对齐改为默认拉伸对齐 */
  8. align-items: stretch;
  9. }
  10. .container>.item {
  11. /* 项目宽度恢复 5em,主轴单行显示 */
  12. width: 5em;
  13. }
  14. /* 添加区分背景色 */
  15. .container .item:nth-of-type(2) {
  16. background-color: lightgreen;
  17. }
  18. .container .item:nth-of-type(3) {
  19. background-color: lightsalmon;
  20. }
  21. .container .item:nth-of-type(4) {
  22. background-color: lightseagreen;
  23. }
  24. /* 项目伸/缩/宽度 */
  25. .container .item:first-of-type {
  26. flex: 1;
  27. }
  28. /* 项目3和4伸缩宽度是项目1的两倍 */
  29. .container .item:nth-of-type(2)~* {
  30. flex: 2
  31. }
  32. /* 某个项目自身交叉轴上对齐方式 */
  33. /* 项目1在交叉轴居中 */
  34. .container .item:first-of-type {
  35. align-self: center;
  36. }
  37. /* 项目2在交叉轴顶部对齐 */
  38. .container .item:nth-of-type(2) {
  39. align-self: flex-start;
  40. }
  41. /* 项目3在交叉轴底部对齐 */
  42. .container .item:nth-of-type(3) {
  43. align-self: flex-end;
  44. }
  45. /* 项目4在交叉轴内容基线对齐 */
  46. .container .item:last-of-type {
  47. align-self: baseline;
  48. }
  49. /* 某个项目主轴上排序顺序 */
  50. /* 项目3排序1 */
  51. .container .item:nth-of-type(3) {
  52. order: 1;
  53. }
  54. /* 项目2排序-1 */
  55. .container .item:nth-of-type(2) {
  56. order: -1;
  57. }
  • 因为默认排序为0,项目3排序1,项目2排序-1,排序越小越在前,现在排序依次为:项目2(-1),项目1(0),项目4(0),项目3(1)

  • 示例图

flex项目常用属性示例演示

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议