博客列表 >css-flex布局

css-flex布局

大宇
大宇原创
2021年03月25日 17:17:53513浏览

作业内容:实例演示flex容器中的四个属性的功能,参数,以及作用
flex是flexible Box的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局。
采用flex布局的元素,成为flex容器,简称容器。
他的所有子元素自动成为容器成员,成为flex项目,简称项目

总结flex布局原理:就是通过给父盒子添加flex属性,来控制子盒子的位置和排列方式。

容器属性
|序号 | 属性 |描述 |
|——-|————————|——————|
|1 | flex-direction | 设置主轴方向|
|2 | justify-content| 设置主轴上的子元素排列方式|
|3 | flex-wrap | 设置子元素是否换行|
|4 | flex-flow | 复合属性,相当于同时设置了flex-direction和flex-wrap|
|5 | align-content |设置侧轴上的子元素的排列方式(多行)|
|6 | align-items| 设置侧轴上的子元素的排列方式(单行)|

首先flex容器是默认主轴是x轴

flex-direction

代码:

  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>
  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布局,这个元素就叫flex容器 */
  20. display: flex;
  21. height: 20rem;
  22. border: 1px solid #000;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="container">
  28. <div class="item">item1</div>
  29. <div class="item">item2</div>
  30. <div class="item">item3</div>
  31. </div>
  32. </body>
  33. </html>

效果图:

flex-wrap

flex-wrap设置元素是否进行换行。
flex容器中的子元素自动成为flex容器的项目,并且是行内块显示
将flex-wrap改为flex-wrap:wrap; 会进行换行。

  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>
  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. display: flex;
  20. height: 20rem;
  21. border: 1px solid #000;
  22. }
  23. .container > .item {
  24. width: 10rem;
  25. padding: 1rem;
  26. border: solid 1px #000;
  27. background-color: lightgreen;
  28. }
  29. .container {
  30. flex-direction: row;
  31. flex-wrap: wrap;
  32. }
  33. </style>
  34. </head>
  35. <body>
  36. <div class="container">
  37. <div class="item">item1</div>
  38. <div class="item">item2</div>
  39. <div class="item">item3</div>
  40. <div class="item">item3</div>
  41. <div class="item">item3</div>
  42. <div class="item">item3</div>
  43. <div class="item">item3</div>
  44. <div class="item">item3</div>
  45. <div class="item">item3</div>
  46. </div>
  47. </body>
  48. </html>


将flex-direction改为flex-direction:column 就是讲主轴改为y轴
部分代码:

  1. .container {
  2. flex-direction: column;
  3. flex-wrap: wrap;
  4. }


flex-direction还有两个属性是row-reverse和column-reverse 同字义一样,一个是反向行排列,一个是反向列排列,不常用,不做演示。

justify-content

设置主轴上的子元素排列方式
设置为flex-start 默认从头部开始,如果主轴是x轴,则从左到右,如果主轴是y轴,则从上到下。
部分代码:

  1. .container {
  2. flex-direction: row;
  3. flex-wrap: wrap;
  4. justify-content: flex-start;
  5. }


默认就是flex-start。
flex-end就是倒着排序。

  1. .container {
  2. flex-direction: row;
  3. flex-wrap: wrap;
  4. justify-content: flex-end;
  5. }


justify-content:center 在主轴居中对齐

  1. .container {
  2. flex-direction: row;
  3. flex-wrap: wrap;
  4. justify-content: center;
  5. }


justify-content:space-around 平分剩余空间

  1. .container{
  2. flex-direction:row;
  3. flex-wrap:wrap;
  4. justify-content:space-around;
  5. }


justify-content:space-between 先两侧贴边,再平分空间

  1. .container{
  2. flex-direction:row;
  3. flex-wrap:wrap;
  4. justify-content:space-between;
  5. }

align-items

控制子项在侧轴(默认是y轴)上的排列方式,在子项为单项时使用。
默认值是stretch (拉伸) 拉伸需要不给子盒子高度。
align-items: center; y轴排列居中。
代码:

  1. .container {
  2. flex-direction: row;
  3. flex-wrap: nowrap;
  4. justify-content: space-between;
  5. align-items: center;
  6. }


flex-start

flex-end:

flex-flow

复合属性,相当于设置了flex-direction和flex-wrap
flex-flow:主轴方向 是否换行;

  1. .container {
  2. /* flex-direction: column;
  3. flex-wrap: nowrap; */
  4. flex-flow: column nowrap;
  5. justify-content: space-between;
  6. align-items: flex-start;
  7. }

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