0


前端的学习-CSS(弹性布局-flex)

一:什么是弹性布局-Flex

  1. flex Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
  2. 语法:
  1. .box{
  2. display: flex;
  3. }
  1. .box{
  2. display: inline-flex;
  3. }
  1. ** 注意,设为 Flex 布局以后,子元素的floatclearvertical-align属性将失效。 **
  2. 基本概念:

  1. 按照我自己的理解,横向代表主轴的方向,纵向代表交叉轴的方向,横向的方向由左到右为开始到结束,纵向则是由上到下。
  2. 我将被设置弹性布局的盒子称作父元素,将里面的内容称为子元素。方便记忆。
  3. 通常设置盒子页面都是按照标准流进行排列。块元素的话就是从上到下排列。如下图。

  1. 现在给父元素也就是绿色的盒子设置弹性布局。 子元素的盒子会自动按照主轴方向排列。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>弹性布局</title>
  6. <style type="text/css">
  7. .main-box {
  8. width: 800px;
  9. height: 300px;
  10. background-color: aquamarine;
  11. margin: 0 auto;
  12. /* 设置弹性盒子 */
  13. display: flex;
  14. }
  15. .main-box>div {
  16. width: 200px;
  17. height: 200px;
  18. border: 1px solid red;
  19. font-size: 20px;
  20. color: #000;
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <div class="main-box">
  26. <div>1</div>
  27. <div>2</div>
  28. <div>3</div>
  29. </div>
  30. </body>
  31. </html>
  1. 以下6个属性设置在容器上。
  2. flex-direction:项目的排列方向
  3. flex-wrap:项目如何换行
  4. flex-flow flex-direction 属性和 flex-wrap的简写方式。
  5. justify-content:项目在主轴上的对齐方式
  6. align-items:项目在交叉轴上如何对齐
  7. align-content:多根轴线的对齐方式
1: flex-direction:项目的排列方向
  1. flex-direction,默认排列为主轴方向,也就是水平方向。
  1. box {
  2. flex-direction: row | row-reverse | column | column-reverse;
  3. }
  1. row:默认方向,主轴的方向
  2. row-reverse:主轴方向,但元素会从主轴结束的方向开始排列,并且元素的顺序会反过来。
  3. column:交叉轴方向
  4. colmun-reverse:交叉轴方向,但元素会从交叉轴结束的方向开始排列,并且元素的顺序会反过来。。

  1. flex-direction: row-reverse;
  1. **设置交叉轴方向 **
  1. flex-direction: column;

  1. **设置交叉轴反向 **
  1. flex-direction: column-reverse;

2:flex-wrap:项目如何换行
  1. 首先弹性布局默认是不会换行,当子元素的宽度或者高度总和加起来大于父元素的宽度时,子元素会被压缩。如下。

  1. 这时如果需要换行,则需要flex-warp属性来控制,flex-warp默认是 flex-warp: no-warp;

这时将其值为:flex-warp: warp;

  1. flex-wrap: wrap;
  1. ** 交叉轴方向换行 **

  1. .main-box {
  2. width: 800px;
  3. height: 300px;
  4. background-color: aquamarine;
  5. margin: 0 auto;
  6. /* 设置弹性盒子 */
  7. display: flex;
  8. /* 设置交叉轴方向 */
  9. flex-direction: column;
  10. flex-wrap: wrap;
  11. }
3:justify-content:项目在主轴上的对齐方式
  1. .box {
  2. justify-content: flex-start | flex-end | center | space-between |
  3. space-around;
  4. }
  1. justify-content: flex-start;

  1. justify-content: flex-end;

  1. justify-content: space-between;

  1. justify-content: space-around;

  1. justify-content: space-evenly;

  1. space-aroundspace-evenly的区别是,space-evenly的间隙全是一样的,而,sapce-around的最左右两别的间隙和子元素之间的间隙是不一样的,space-beween的只有中间存在空隙。
4: align-items:项目在交叉轴上如何对齐
  1. .box {
  2. align-items: flex-start | flex-end | center | baseline | stretch;
  3. }
  1. align-items: flex-start;

  1. align-items: flex-end;

  1. align-items: center;

align-items: baseline;以第一行文字的基线作为对齐的基准。

  1. align-items: baseline;

  1. 如果子元素未设置高度,而设置了align-items: stretch; 则会占满整个父元素。
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>弹性布局</title>
  6. <style type="text/css">
  7. .main-box {
  8. width: 800px;
  9. height: 300px;
  10. background-color: aquamarine;
  11. margin: 0 auto;
  12. /* 设置弹性盒子 */
  13. display: flex;
  14. /* 设置交叉轴方向 */
  15. align-items: stretch;
  16. }
  17. .main-box>div {
  18. width: 100px;
  19. /* height: 300px; */
  20. border: 1px solid red;
  21. font-size: 20px;
  22. color: #000;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="main-box">
  28. <div class="box1">1</div>
  29. <div class="box2">2</div>
  30. <div class="box3">3</div>
  31. <div class="box4">4</div>
  32. <div class="box5">5</div>
  33. </div>
  34. </body>
  35. </html>

5: align-content:多根轴线的对齐方式
  1. align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
  1. .box {
  2. align-content: flex-start | flex-end | center | space-between | spacearound | stretch;
  3. }
  1. align-content: flex-start;

  1. align-content: flex-end;

  1. align-content: space-around;

  1. align-content: space-between;

  1. align-content: space-evenly;

  1. align-content: center;

  1. align-content: stretch;

** 今天就先这样。。。。。。**

标签: 前端 css 学习

本文转载自: https://blog.csdn.net/m0_68823256/article/details/140878422
版权归原作者 银杏也要学习代码 所有, 如有侵权,请联系我们删除。

“前端的学习-CSS(弹性布局-flex)”的评论:

还没有评论