4.flex容器属性.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <style>
  8. #main {
  9. width: 1000px;
  10. height: 800px;
  11. border: 1px solid #f00;
  12. /* 开启弹性盒 */
  13. display: flex;
  14. flex-wrap: wrap;
  15. /* flex-direction: column; */
  16. align-content: space-evenly;
  17. /* align-items: baseline; */
  18. /* justify-content: space-evenly; */
  19. /* flex-flow: row-reverse wrap; */
  20. /* flex-wrap: wrap-reverse; */
  21. /* flex-direction: row; */
  22. /* display: inline-flex; */
  23. }
  24. #one {
  25. width: 500px;
  26. /* flex: 1; */
  27. height: 200px;
  28. background: #0f0;
  29. }
  30. #two {
  31. width: 300px;
  32. /* flex: 1; */
  33. height: 200px;
  34. background: #0ff;
  35. }
  36. #three {
  37. width: 400px;
  38. /* flex: 1; */
  39. height: 200px;
  40. background: plum;
  41. }
  42. </style>
  43. </head>
  44. <body>
  45. <!--
  46. flex:响应式布局 弹性布局 弹性盒子
  47. 容器和项目
  48. 横纵轴
  49. 主轴和交叉轴
  50. 开启弹性盒子 display:flex
  51. 注意:设置为flex布局后,子元素的float、clear、vertical-align属性将失效;
  52. 1.flex-direction
  53. 决定主轴的方向(项目的排列方向)
  54. .box {
  55. flex-direction:row|row-reverse|column|column-reverse;
  56. }
  57. row(默认) 从左向右排列,主轴为水平方向,起点在左端
  58. row-reverse 从右向左排列,主轴为水平方向,起点在右端
  59. column 从上向下排列,起点在上沿
  60. column-reverse 从下向上排列,起点在下沿
  61. 2.flex-warp
  62. 默认情况下,Flex项目都排在一条线上,又称"轴线"上;
  63. 我们可以通过flex-wrap属性设置,让Flex项目换行排列;
  64. .box {
  65. flex-wrap:nowrap|wrap|warp-reverse;
  66. }
  67. nowrap(默认):不换行;所有Flex项目单行排列:
  68. wrap:换行,第一行在上方;所有Flex项目多行排列,按从上到下的顺序;
  69. wrap-reverse:换行,第一行在下方;所有Flex项目多行排列,按从下到上的顺序;
  70. 3. flex-flow
  71. 是flex-direction属性和flex-wrap属性的组合,默认值为row nowrap;
  72. .box {
  73. flex-flow:<flex-direction><flex-wrap>;
  74. }
  75. 4.justify-content属性定义了项目在主轴上的对齐方式;
  76. .box {
  77. justify-content:flex-start|flex-end|center|space-between|space-around;
  78. }
  79. flex-start(默认):左对齐;
  80. flex-end:右对齐;
  81. center:居中;
  82. space-between:两端对齐,项目之间间隔相等;
  83. space-around:项目均匀分布,每一个项目两侧有相同的留白空间,相邻项目之间的距 离是两个项目之间留白的和;
  84. space-evenly:项目均匀分布,所有项目之间及项目与边框之间距离相等;
  85. 5. align-items属性定义项目在交叉轴上的对齐方式。
  86. .box {
  87. align-items: stretch | flex-start | flex-end | center | baseline;
  88. }
  89. stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
  90. flex-start:交叉轴的起点对齐。
  91. flex-end:交叉轴的终点对齐。
  92. center:交叉轴的中点对齐。
  93. baseline: 项目的第一行文字的基线对齐
  94. 6.align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
  95. .box {
  96. align-content: flex-start | flex-end | center | space-between | space-around | stretch;
  97. }
  98. stretch (默认):拉伸显示
  99. flex-start:从启点线开始顺序排列
  100. flex-end:相对终点线顺序排列
  101. center:居中排列
  102. space-between:项目均匀分布,第一项在启点线,最后一项在终点线
  103. space-around:项目均匀分布,每一个项目两侧有相同的留白空间,相邻项目之间的距离是两个项目之间留白的和
  104. space-evenly:项目均匀分布,所有项目之间及项目与边框之间距离相等;
  105. -->
  106. <div id="main">
  107. <!-- <h2>啊哈哈哈</h2> -->
  108. <div id="one">
  109. </div>
  110. <!-- 哈哈 -->
  111. <div id="two"></div>
  112. <div id="three"></div>
  113. </div>
  114. </body>
  115. </html>