博客列表 >CSS中flex布局的属性及应用

CSS中flex布局的属性及应用

未来星
未来星原创
2021年04月06日 07:53:04829浏览

flex弹性布局是css3中的一个有效的布局方式。引入弹性盒布局模型(flex box)的目的是提供一种更加有效的方式来对一个容器中的条目进行排列、对齐和分配空白空间。即便容器中条目的尺寸未知或是动态变化的,弹性盒布局模型也能正常的工作。或者说当页面布局必须适应不同的屏幕尺寸和不同的显示设备时,元素可预测地运行。

1. 术语

  1. 容器: 具有display:flex属性元素
  2. 项目: flex 容器的”子元素”
  3. 主轴: 项目排列的轴线
  4. 交叉轴: 与主轴垂直的轴线

2. 容器属性

序号 属性 描述
1 flex-flow 主轴方向与换行方式
2 justify-content 项目在主轴上的对齐方式
3 align-items 项目在交叉轴上的对齐方式
4 align-content 项目在多行容器中的对齐方式

3. 项目属性

序号 属性 描述
1 flex 项目的缩放比例与基准宽度
3 align-self 单个项目在交叉轴上的对齐方式
4 order 项目在主轴上排列顺序
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>flex的属性</title>
  8. <style>
  9. * {
  10. box-sizing: border-box;
  11. }
  12. :root {
  13. font-size: 10px;
  14. }
  15. body {
  16. font-size: 1.6rem;
  17. }
  18. .container {
  19. /* 转为flex布局 */
  20. display: flex;
  21. height: 40rem;
  22. border: 1px solid #000;
  23. }
  24. /* 项目样式 */
  25. .container > .item {
  26. width: 10rem;
  27. /* height: 15rem; */
  28. background-color: lightgreen;
  29. border: 1px solid #000;
  30. }
  31. .container {
  32. flex-flow: row nowrap;
  33. /* 项目在主轴上的对齐方式: justify-content */
  34. /* 1. 将所有项目看成一个整体来处理 */
  35. justify-content: flex-start;
  36. justify-content: flex-end;
  37. justify-content: center;
  38. /* 2. 将所有项目看成一个个独立的个体来处理 */
  39. justify-content: space-between; /* 二端对齐 */
  40. justify-content: space-around; /* 分散对齐 */
  41. justify-content: space-evenly; /* 平均对齐 */
  42. }
  43. /* 项目在交叉轴上的对齐方式: align-items */
  44. .container {
  45. align-items: stretch; //拉伸
  46. align-items: flex-start;
  47. align-items: flex-end;
  48. align-items: center;
  49. }
  50. /*
  51. justify-content: 项目在主轴上的对齐方式
  52. align-items: 项目在交叉轴上的对齐方式
  53. */
  54. .container {
  55. flex-flow: row wrap;
  56. /* 多行容器中对齐时,主轴是没有剩余空间的 */
  57. /* 换行后,如果需要设置对方方式,就要求交叉轴上必须要有剩余空间 */
  58. align-content: stretch;
  59. /* 将交叉轴上所有项目看成一个整体 */
  60. align-content: flex-start;
  61. align-content: flex-end;
  62. align-content: center;
  63. /* 看成个体 */
  64. /* 二端对齐 */
  65. align-content: space-between;
  66. /* 分散对齐 */
  67. align-content: space-around;
  68. /* 平均对齐 */
  69. align-content: space-evenly;
  70. }
  71. </style>
  72. </head>
  73. <body>
  74. <div class="container">
  75. <div class="item">item1</div>
  76. <div class="item">item2</div>
  77. <div class="item">item3</div>
  78. <div class="item">item4</div>
  79. <div class="item">item5</div>
  80. <div class="item">item6</div>
  81. <div class="item">item7</div>
  82. <div class="item">item8</div>
  83. </div>
  84. </body>
  85. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议