Blogger Information
Blog 70
fans 4
comment 5
visits 104850
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
flex布局:flex容器中的四个属性的功能,参数,以及作用
JiaJieChen
Original
2695 people have browsed it

flex容器中的四个属性的功能/参数

flex容器是具有:display:flex的属性元素
语法定义

  1. <head>
  2. <style type="text/css">
  3. #box{
  4. display: flex;
  5. }
  6. </style>
  7. </head>
  8. <body>
  9. <div id="box"></div>
  10. </body>

1.主轴方向与换行方式

元素 属性 含义
flex-flow row nowrap 默认的,主轴水平方向排列,不换行
flex-flow row wrap 主轴水平方向排列,进行换行
flex-flow column nowrap 主轴垂直方向排列,不换行
flex-flow column wrap 主轴垂直方向排列,进行换行
① flex-flow:row nowrap 演示

大家可以看到flex-flow:row nowrap参数,只要里面项目增加,里面原本的项目宽度就会被压缩,不会进行换行。

② flex-flow:row wrap 演示

大家可以看到flex-flow:row wrap参数,里面的项目增加了只要超过了原始设置好的宽度,那么这些项目就会进行系统自动换行,移植到下面。

③ flex-flow:column nowrap 演示

大家可以看到flex-flow:column nowrap参数,是垂直方向排列,里面项目增加,里面原本的项目宽度就会被压缩,不会进行换行。

④ flex-flow:column wrap 演示

大家可以看到flex-flow:column wrap参数,是垂直排列,会进行换行,原理都是一样的,只是排列方式不一样。

2.项目在主轴上的对齐方式

元素 属性 含义
justify-content flex-start 默认起始线
justify-content flex-end 终止线
justify-content center 居中
justify-content space-between 两端对齐
justify-content space-around 分散对齐
justify-content space-evenly 平均对齐
① justify-content:flex-start 演示

默认起始线,没有变化

② justify-content:flex-end 演示

大家可以看到justify-content:flex-end参数,把项目移动到了水平排列的终止线,也就是最底部。

③ justify-content:center 演示

大家可以看到justify-content:center参数,把项目移动到了水平线的中间部位,把项目居中了!

④ justify-content:space-between 演示

大家可以看到justify-space-between参数,把项目进行了两端对齐,除了最左边和最右边的外边距,其他的外边距大小都是一致的。

⑤ justify-content:space-around 演示

大家可以看到justify-space-around参数,把项目进行了分散对齐。

⑥ justify-content:space-evenly 演示

大家可以看到justify-space-space-evenly参数,把项目进行了平均对齐,左右的外边距都是一样的。

3.项目在交叉轴的对齐方式

元素 属性 含义
align-items stretch 默认拉伸
align-items flex-start 起始线
align-items flex-end 终止线
align-items center 居中
① align-items stretch 演示

大家可以看到align-items stretch参数,默认在垂直方向是拉伸的。

② align-items flex-start 演示

大家可以看到align-items flex-start参数,上面可以看到垂直方向默认是拉伸的,用flex-start把项目的垂直方向设置在起始线,可以看到变短了。

③ align-items flex-end 演示

大家可以看到align-items flex-end参数,把项目设置在垂直方向终点线上,也就是最下面。

④ align-items center 演示

大家可以看到align-items center参数,把项目定位在了垂直方向的中间部位,把项目居中了。

4.项目在多行容器交叉轴上的对齐方式

元素 属性 含义
align-content flex-start 起始线
align-content flex-end 终止线
align-content stretch 默认拉伸
align-content center 居中
① align-content flex-start 演示

大家可以看到align-content flex-start参数,把多行项目都定位到了起始线上。下面几个参数原理都一样,就不一一演示了,下面来讲一下flex让块级元素居中的用法。

代码块

  1. <!DOCTYPE html>
  2. <html lang="en">
  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 type="text/css">
  9. * {
  10. padding: 0;
  11. margin: 0;
  12. box-sizing: border-box;
  13. }
  14. /* 设置元素html字体为10px */
  15. :root {
  16. font-size: 10px;
  17. }
  18. /* body字体为16px */
  19. body {
  20. font-size: 1.6rem;
  21. }
  22. /* 定义一个flex容器
  23. #box {
  24. border: 1px solid;
  25. width: 30em;
  26. height: 30em;
  27. 转变为flex容器
  28. display: flex;
  29. 设置为水平方向排列,不换行元素
  30. flex-flow: row nowrap;
  31. }*/
  32. /* #box {
  33. border: 1px solid;
  34. width: 30em;
  35. height: 30em;
  36. display: flex;
  37. 设置为水平方向排列,会进行换行
  38. flex-flow: row wrap;
  39. } */
  40. /* #box {
  41. width: 30em;
  42. height: 30em;
  43. display: flex;
  44. 设置为垂直方向排列,不会进行换行
  45. flex-flow: column nowrap;
  46. } */
  47. /* #box {
  48. width: 30em;
  49. height: 30em;
  50. display: flex;
  51. 设置为垂直方向排列,会进行换行
  52. flex-flow: column wrap;
  53. } */
  54. /* #box {
  55. width: 30em;
  56. height: 30em;
  57. display: flex;
  58. 设置项目在主轴上的对齐方式,默认起始线。
  59. justify-content: flex-start;
  60. } */
  61. /* #box {
  62. width: 30em;
  63. height: 30em;
  64. display: flex;
  65. 设置项目在主轴上的对齐方式,终止线。
  66. justify-content: flex-end;
  67. } */
  68. /* #box {
  69. width: 30em;
  70. height: 30em;
  71. display: flex;
  72. 设置项目在主轴上的对齐方式,居中。
  73. justify-content: center;
  74. } */
  75. /* #box {
  76. width: 30em;
  77. height: 30em;
  78. display: flex;
  79. 设置项目在主轴上的对齐方式,两端对齐。
  80. justify-content: space-between;
  81. } */
  82. /* #box {
  83. width: 30em;
  84. height: 30em;
  85. display: flex;
  86. 设置项目在主轴上的对齐方式,分散对齐。
  87. justify-content: space-around;
  88. } */
  89. /* #box {
  90. width: 30em;
  91. height: 30em;
  92. display: flex;
  93. 设置项目在主轴上的对齐方式,平均对齐。
  94. justify-content: space-evenly;
  95. } */
  96. /*
  97. #box {
  98. width: 30em;
  99. height: 30em;
  100. display: flex;
  101. 设置项目在交叉轴的对齐方式,默认拉伸。
  102. align-items: stretch;
  103. } */
  104. /* #box {
  105. width: 30em;
  106. height: 30em;
  107. display: flex;
  108. 设置项目在交叉轴的对齐方式,起始线。
  109. align-items: flex-start;
  110. } */
  111. /* #box {
  112. width: 30em;
  113. height: 30em;
  114. display: flex;
  115. 设置项目在交叉轴的对齐方式,终止线。
  116. align-items: flex-end;
  117. } */
  118. /* #box {
  119. width: 30em;
  120. height: 30em;
  121. display: flex;
  122. 设置项目在交叉轴的对齐方式,居中。
  123. align-items: center;
  124. } */
  125. #box {
  126. width: 30em;
  127. height: 30em;
  128. display: flex;
  129. /* 设置项目在多行容器交叉轴上的对齐方式,起始线。 */
  130. flex-flow: row wrap;
  131. align-content: flex-start;
  132. }
  133. #box > .boxder {
  134. border: 1px solid;
  135. background: lightgreen;
  136. width: 5em;
  137. height: 5em;
  138. }
  139. </style>
  140. </head>
  141. <body>
  142. <div id="box">
  143. <div class="boxder">项目1</div>
  144. <div class="boxder">项目2</div>
  145. <div class="boxder">项目3</div>
  146. <div class="boxder">项目4</div>
  147. <div class="boxder">项目5</div>
  148. <div class="boxder">项目6</div>
  149. <div class="boxder">项目7</div>
  150. <div class="boxder">项目8</div>
  151. <div class="boxder">项目9</div>
  152. <div class="boxder">项目10</div>
  153. </div>
  154. </body>
  155. </html>

flex简单实现让项目居中

怎么样很简单吧?几行代码搞定。不像之前的定位要设置很多参数,使用flex布局会更加的简洁方便!

代码块

  1. <!DOCTYPE html>
  2. <html lang="en">
  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 type="text/css">
  9. * {
  10. box-sizing: border-box;
  11. }
  12. #box1 {
  13. border: 1px solid;
  14. width: 25em;
  15. height: 25em;
  16. background: lightpink;
  17. /* 设为flex容器 */
  18. display: flex;
  19. /* 让这个项目在水平线上居中 */
  20. justify-content: center;
  21. /* 让这个项目在交叉轴上居中 */
  22. align-items: center;
  23. }
  24. #box2 {
  25. border: 1px solid;
  26. width: 15em;
  27. height: 15em;
  28. background: limegreen;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div id="box1">
  34. <div id="box2"></div>
  35. </div>
  36. </body>
  37. </html>
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post