PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

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

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

吳
原创
2020年12月23日 02:23:15 594浏览

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

1. flex容器常用属性

flex容器 描述 属性
flex-flow 主轴方向与换行 row/column norap/wrap
justify-content 项目在主轴上的对齐方式 默认:flex-start 项目位于容器结尾:flex-end 项目位于容器的中心:center 两端对齐:space-between 分散对齐:space-around 平均对齐:space-evenly
align-items 项目在交叉轴上的对齐方式 默认拉伸:stretch 元素位于容器中心:center 元素位于容器开头:flex-start 元素位于容器结尾:flex-end
align-content 项目在多行容器中的交叉轴上的对齐方式 默认拉伸:stretch 元素位于容器的中心:center 元素位于容器的开头:flex-start 元素位于容器结尾:flex-end 两端对齐:space-between 分散对齐:space-around 平均对齐:space-evenly
  • 主轴方向与换行
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <title>主轴方向与换行</title>
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. .container {
  13. background-color: skyblue;
  14. height: 15em;
  15. display: flex;
  16. margin: 1em;
  17. padding: 2em;
  18. border: 2px solid red;
  19. }
  20. .container>.item {
  21. border: 1px solid black;
  22. background-color: lightcyan;
  23. height: 5em;
  24. width: 5em;
  25. }
  26. .container {
  27. /* 水平方向是row 垂直方向是column 换行wrap 不换行nowrap */
  28. /* 水平方向 不换行 */
  29. flex-flow: row nowrap;
  30. /* 水平方向 换行显示 */
  31. flex-flow: row wrap;
  32. /* 垂直方向 不换行 */
  33. flex-flow: column nowrap;
  34. /* 垂直方向 换行 */
  35. flex-flow: column wrap;
  36. }
  37. </style>
  38. </head>
  39. <body>
  40. <div class="container">
  41. <div class="item">test1</div>
  42. <div class="item">test2</div>
  43. <div class="item">test3</div>
  44. <div class="item">test4</div>
  45. <div class="item">test5</div>
  46. <div class="item">test6</div>
  47. </div>
  48. </body>
  49. </html>

演示截图

  • 项目在主轴上的对齐方式
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <title>项目在主轴上的对齐方式</title>
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. .container {
  13. background-color: lightcyan;
  14. border: 1px solid black;
  15. height: 15em;
  16. margin: 1em;
  17. padding: 1em;
  18. display: flex;
  19. }
  20. .container>.item {
  21. background-color: lightblue;
  22. border: 1px solid black;
  23. height: 5em;
  24. width: 5em;
  25. }
  26. .container {
  27. /* 1.将所有项目视为一个整体,在项目组两边进行分配 */
  28. /* 右对齐 */
  29. justify-content: flex-start;
  30. /* 左对齐 */
  31. justify-content: flex-end;
  32. /* 居中显示 */
  33. justify-content: center;
  34. /* 2.将项目视为一个个独立的个体,在项目之间进行分配 */
  35. /* 两端对齐 */
  36. justify-content: space-between;
  37. /* 分散对齐 */
  38. justify-content: space-around;
  39. /* 平均对齐 */
  40. justify-content: space-evenly;
  41. }
  42. </style>
  43. </head>
  44. <body>
  45. <div class="container">
  46. <div class="item">test1</div>
  47. <div class="item">test2</div>
  48. <div class="item">test3</div>
  49. <div class="item">test4</div>
  50. <div class="item">test5</div>
  51. <div class="item">test6</div>
  52. </div>
  53. </body>
  54. </html>

演示截图

  • 项目在交叉轴上的对齐方式
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <title>项目在交叉轴上的对齐方式</title>
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. .container {
  13. background-color: skyblue;
  14. border: 3px solid red;
  15. padding: 1em;
  16. margin: 1em;
  17. display: flex;
  18. height: 15em;
  19. }
  20. .container>.item {
  21. background-color: yellow;
  22. border: 1px solid red;
  23. height: 5em;
  24. width: 5em;
  25. }
  26. .container {
  27. /* 默认,拉伸子元素 */
  28. align-items: stretch;
  29. /* 位于元素容器顶部 */
  30. align-items: flex-start;
  31. /* 位于元素容器底部 */
  32. align-items: flex-end;
  33. /* 元素位于容器中心 */
  34. align-items: center;
  35. }
  36. </style>
  37. </head>
  38. <body>
  39. <div class="container">
  40. <div class="item">test1</div>
  41. <div class="item">test2</div>
  42. <div class="item">test3</div>
  43. <div class="item">test4</div>
  44. <div class="item">test5</div>
  45. <div class="item">test6</div>
  46. </div>
  47. </body>
  48. </html>

  • 项目在多行容器中的交叉轴上的对齐方式
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <title>项目在多行容器中的交叉轴上的对齐方式</title>.
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. .container {
  13. background-color: lightgreen;
  14. border: 1px solid red;
  15. height: 25em;
  16. margin: 1em;
  17. padding: 1em;
  18. display: flex;
  19. }
  20. .container>.item {
  21. background-color: skyblue;
  22. border: 1px solid red;
  23. height: 5em;
  24. width: 8em;
  25. }
  26. .container {
  27. flex-flow: row wrap;
  28. /* 拉伸对齐 */
  29. align-content: stretch;
  30. /* 位于容器的中心 */
  31. align-content: center;
  32. /* 位于容器的开头 */
  33. align-content: flex-start;
  34. /* 位于容器结尾 */
  35. align-content: flex-end;
  36. /* 两端对齐 */
  37. align-content: space-between;
  38. /* 分散对齐 */
  39. align-content: space-around;
  40. /* 平均对齐 */
  41. align-content: space-evenly;
  42. }
  43. </style>
  44. </head>
  45. <body>
  46. <div class="container">
  47. <div class="item">test1</div>
  48. <div class="item">test2</div>
  49. <div class="item">test3</div>
  50. <div class="item">test4</div>
  51. <div class="item">test5</div>
  52. <div class="item">test6</div>
  53. <div class="item">test7</div>
  54. <div class="item">test8</div>
  55. <div class="item">test9</div>
  56. <div class="item">test10</div>
  57. <div class="item">test11</div>
  58. <div class="item">test12</div>
  59. </div>
  60. </body>
  61. </html>

演示截图


2.flex项目常用属性

flex项目 描述 属性
flex 项目的伸缩与宽度 放大(0禁止 1开启) 收缩(0禁止 1开启) 基准宽度(使用auto)
align-self 项目的对齐方式 默认:stretch 位于项目顶部:flex-start 位于项目底部:flex-end 位于项目中心:center
order 项目在主轴上的排列顺序 0默认,支持负值
  • 项目的伸缩与宽度
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <title>项目的伸缩与宽度</title>
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. .container {
  13. background-color: skyblue;
  14. border: 2px solid red;
  15. height: 15em;
  16. margin: 1em;
  17. padding: 1em;
  18. display: flex;
  19. }
  20. .container>.item {
  21. background-color: lightcyan;
  22. border: 1px solid black;
  23. height: 2em;
  24. width: 5em;
  25. }
  26. .container>.item {
  27. /* flex: flex-gro flex-shrink flex-basis */
  28. /* flex: 放大因子 收缩因子 项目在主轴上的基准宽度 */
  29. /* 默认值:不放大或收缩 */
  30. flex: 0 1 auto;
  31. /* 放大 收缩 */
  32. flex: 1 1 auto;
  33. /* 禁止放大 收缩 */
  34. flex: 0 0 auto;
  35. /* 如果只有一个数字,省略掉后面两个参数,表示的放大因子 */
  36. flex: 1;
  37. /* flex通常不会用来设置所有项目的默认选项,通常用来设置某一个项目的特征,也就是定制 */
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <div class="container">
  43. <div class="item">test1</div>
  44. <div class="item">test2</div>
  45. <div class="item">test3</div>
  46. <div class="item">test4</div>
  47. <div class="item">test5</div>
  48. <div class="item">test6</div>
  49. </div>
  50. </body>
  51. </html>

演示截图

  • 项目的对齐方式
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <title>设置某个项目的对齐方式</title>
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. .container {
  13. background-color: lightblue;
  14. border: 3px solid black;
  15. margin: 2em;
  16. padding: 2em;
  17. height: 15em;
  18. display: flex;
  19. }
  20. .container>.item {
  21. background-color: lightgreen;
  22. border: 1px solid red;
  23. width: 5em;
  24. }
  25. .container>.item:nth-of-type(3) {
  26. align-self: stretch;
  27. /* 上对齐 */
  28. align-self: flex-start;
  29. /* 下对齐 */
  30. align-self: flex-end;
  31. /* 居中 */
  32. align-self: center;
  33. }
  34. </style>
  35. </head>
  36. <body>
  37. <div class="container">
  38. <div class="item">test1</div>
  39. <div class="item">test2</div>
  40. <div class="item">test3</div>
  41. <div class="item">test4</div>
  42. </div>
  43. </body>
  44. </html>

演示截图

  • 项目在主轴上的排列顺序
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <title>主轴排列顺序</title>
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. .container {
  13. background-color: violet;
  14. border: 2px solid yellow;
  15. margin: 1em;
  16. padding: 1em;
  17. display: flex;
  18. height: 15em;
  19. }
  20. .container>.item {
  21. background-color: lightblue;
  22. border: 1px solid lightseagreen;
  23. width: 8em;
  24. }
  25. .container>.item:first-of-type {
  26. order: 1;
  27. background-color: yellow;
  28. }
  29. .container>.item:nth-of-type(2) {
  30. order: -1;
  31. background-color: lightgreen;
  32. }
  33. .container>.item:nth-of-type(2)+* {
  34. order: 0;
  35. background-color: red;
  36. }
  37. .container>.item:last-of-type {
  38. order: 4;
  39. }
  40. </style>
  41. </head>
  42. <body>
  43. <div class="container">
  44. <div class="item">test1</div>
  45. <div class="item">test2</div>
  46. <div class="item">test3</div>
  47. <div class="item">test4</div>
  48. </div>
  49. </body>
  50. </html>

演示截图

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