Blogger Information
Blog 19
fans 0
comment 1
visits 14105
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
flex 属性 和属性值的应用
Original
561 people have browsed it

flex的声明

  1. 声明弹性盒子 display:flex ;
  2. :not(‘选择器’) 从匹配的元素中去掉某一个元素

  3. calc(‘数值’ - ‘数值’);

flex 基本术语

  1. 容器: 具有‘display:flex’ 属性元素

  2. 项目: flex 容器的‘子元素’

  3. 主轴: 项目排列的轴线

  4. 交叉轴: 与主轴垂直的轴线

容器属性

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

项目属性

序号 属性 秒睡
1 “flex” 项目的缩放比例与基准高度
2 “align-self” 单个项目在交叉轴的对齐方式
3 “order” 项目在主轴上的排序

弹性容器与弹性项目

  1. 任何元素都可以通过添加display:flex属性,转为弹性盒子

  2. 转为flex元素后,它的内部“子元素”就支持flex布局了

  3. 使用了display: flex属性的元素称为:flex容器

  4. flex 容器中的‘子元素’ 称之为: 弹性项目

  5. 工作中会存在大量的flex容器嵌套布局

实列

  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>flex 的属性和属性值的应用</title>
  7. <style>
  8. * {
  9. padding: 0;
  10. margin: 0;
  11. box-sizing: border-box;
  12. }
  13. .container {
  14. width: 40em;
  15. height: 30em;
  16. border: 1px solid #000;
  17. display: flex;
  18. }
  19. .container>.itme {
  20. width: 5em;
  21. height: 2em;
  22. border: 1px solid #000;
  23. }
  24. .container>.itme:last-child {
  25. display: flex;
  26. }
  27. .container>.itme:last-child div {
  28. background-color: antiquewhite;
  29. border: 1px solid #000;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <div class="container">
  35. <div class="itme">1</div>
  36. <div class="itme">2</div>
  37. <div class="itme">3</div>
  38. <div class="itme">
  39. <div>1</div>
  40. <div>2</div>
  41. <div>3</div>
  42. </div>
  43. </div>
  44. </body>
  45. </html>

示列

flex 嵌套使用


轴的概念

  1. 默认主轴: 项目排列的方向
  2. 与主轴垂直的叫交叉轴,项目换行的方向
    轴的概念

弹性项目在主轴上的排列方式

  1. 单行容器

  2. 主轴方向加换行 应使用 flex-flow: row nowrap; 第一个参数是主轴方向,第二个是换不换行

序号 属性 描述
1 flex-direction row 默认排列方式
2 flex-wrap nowrap 默认是不换行
3 flex-flow row nowrap 第一个参数是主轴方向 第二个是不换行
4 flex-flow column nowrap 列方向排列且不换行
  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>flex 的属性和属性值的应用</title>
  7. <style>
  8. * {
  9. padding: 0;
  10. margin: 0;
  11. box-sizing: border-box;
  12. }
  13. .container {
  14. width: 40em;
  15. height: 30em;
  16. border: 1px solid #000;
  17. display: flex;
  18. margin: 2em;
  19. padding: 1em;
  20. }
  21. .container>.itme {
  22. width: 5em;
  23. border: 1px solid #000;
  24. }
  25. .container>.itme:last-child {
  26. display: flex;
  27. }
  28. .container>.itme:last-child div {
  29. background-color: antiquewhite;
  30. border: 1px solid #000;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="container">
  36. <div class="itme">1</div>
  37. <div class="itme">2</div>
  38. <div class="itme">3</div>
  39. <div class="itme">4</div>
  40. <div class="itme">5</div>
  41. <div class="itme">6</div>
  42. <div class="itme">7</div>
  43. <div class="itme">8</div>
  44. </div>
  45. </body>
  46. </html>

默认行排列 且不换行

单行容器 默认排列


多行容器: 一行显示不下 允许换行显示

序号 属性 描述
1 flex-flow row wrap 第一个参数是行方向 第二个是换行
2 flex-flow column wrap 列方向排列且换行
  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>flex 的属性和属性值的应用</title>
  7. <style>
  8. * {
  9. padding: 0;
  10. margin: 0;
  11. box-sizing: border-box;
  12. }
  13. .container {
  14. /* width: 50em; */
  15. height: 15em;
  16. border: 1px solid #000;
  17. display: flex;
  18. margin: 2em;
  19. padding: 1em;
  20. flex-flow: column wrap;
  21. }
  22. .container>.itme {
  23. width: 5em;
  24. height: 5em;
  25. border: 1px solid #000;
  26. /*列方向排列 且换行显示*/
  27. flex-flow: column wrap;
  28. }
  29. .container>.itme:last-child {
  30. display: flex;
  31. }
  32. .container>.itme:last-child div {
  33. background-color: antiquewhite;
  34. border: 1px solid #000;
  35. }
  36. </style>
  37. </head>
  38. <body>
  39. <div class="container">
  40. <div class="itme">1</div>
  41. <div class="itme">2</div>
  42. <div class="itme">3</div>
  43. <div class="itme">4</div>
  44. <div class="itme">5</div>
  45. <div class="itme">6</div>
  46. <div class="itme">7</div>
  47. <div class="itme">8</div>
  48. </div>
  49. </body>
  50. </html>

列方向排列 且换行显示

列方向显示 且换行


弹性项目在单行容器中的对齐方式

  1. 设置项目在单行容器上轴上对齐前提: 主轴上存在剩余空间
    剩余空间

空间分配二种方案:

  1. 将所有项目视为一个整体,在项目组二边进行分配

  2. 将项目视为一个个独立的个体,在项目之间进行分配

  3. 交叉轴上的对齐方式

序号 属性 描述
1 justify-content flex-start 1. 默认左边对齐
2 justify-content flex-end 1. 右边对齐
3 justify-content center 1. 居中对齐
4 justify-content space-between 2. 两端对齐 中间自分配
5 jutify-content space-around 每个项目的两边平均分配 分散对齐
6 justify-content space-evenly 平均对齐
7 align-items stretch 拉伸
8 align-items flex-start 顶部对齐
9 align-items flex-end 底部对齐
10 align-items center 居中对齐
  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>flex 的属性和属性值的应用</title>
  7. <style>
  8. * {
  9. padding: 0;
  10. margin: 0;
  11. box-sizing: border-box;
  12. }
  13. .container {
  14. /* width: 50em; */
  15. /*height: 15em;*/
  16. border: 1px solid #000;
  17. display: flex;
  18. margin: 2em;
  19. padding: 1em;
  20. }
  21. .container>.itme {
  22. width: 5em;
  23. height: 5em;
  24. border: 1px solid #000;
  25. }
  26. /*将所有项目视为一个整体,在项目组二边进行分配*/
  27. .container{
  28. /*左边对齐*/
  29. justify-content:flex-start;
  30. /*右边对齐*/
  31. justify-content:flex-end;
  32. /*居中对齐*/
  33. justify-content:center;
  34. /* 将项目视为一个个独立的个体,在项目之间进行分配*/
  35. /*两端对齐 中间平均分配*/
  36. justify-content:space-between;
  37. /*分散对齐*/
  38. justify-content:space-around;
  39. /*平均对齐*/
  40. justify-content:space-evenly;
  41. }
  42. /*交叉轴上的对齐方案*/
  43. .container{
  44. /*拉伸*/
  45. align-items:stretchl;
  46. /*顶部对齐*/
  47. align-items:flex-start;
  48. /*底部对齐*/
  49. align-items:flex-end;
  50. /*居中*/
  51. align-itemscenter;
  52. }
  53. </style>
  54. </head>
  55. <body>
  56. <div class="container">
  57. <div class="itme">1</div>
  58. <div class="itme">2</div>
  59. <div class="itme">3</div>
  60. <div class="itme">4</div>
  61. </div>
  62. </body>
  63. </html>
  1. 单行容器中左对齐 justify-content: flex-start; 默认的
    单行容器中左对齐

  2. 单行容器中右对齐 justify-content: flex-end;
    当行容器中右对齐

  3. 当行容器中居中显示 justify-content:center;
    单行容器中的居中

  4. 独立个体在项目中分配 两端对齐 justify-contetn:space-between
    两端对齐

  5. 独立个体在项目中两边平均分配 分散对齐 justify-content:space-around;
    独立个体分散对齐

  6. 独立个体在项目中两边平均分配 平均对齐 justify-content:space-evenly;
    平均对齐

  7. 交叉上的对齐方式 向上对齐 align-items:flex-start;
    交叉轴上的 向上对齐

  8. 交叉上的对齐方式 向下对齐 align-items:flex-end;
    交叉轴上的底部对齐

  9. 交叉上的对齐方式 居中对齐 align-items:center;
    交叉轴上的居中对齐

弹性项目在多行容器的对齐方式

序号 属性 描述
1 align-content stretch 默认
2 align-content flex-start 向上
3 align-content flex-end 向下
4 align-content center 居中
5 align-content space-between 两端对齐
6 align-content space-around 分散对齐
7 align-content space-evenly 平均对齐
  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>flex 的属性和属性值的应用</title>
  7. <style>
  8. * {
  9. padding: 0;
  10. margin: 0;
  11. box-sizing: border-box;
  12. }
  13. .container {
  14. height: 15em;
  15. border: 1px solid #000;
  16. display: flex;
  17. margin: 2em;
  18. padding: 1em;
  19. }
  20. .container>.itme {
  21. width: 5em;
  22. /* height: 5em; */
  23. border: 1px solid #000;
  24. }
  25. .container{
  26. flex-flow:row wrap;
  27. /*默认方式*/
  28. align-content:stretch;
  29. /*向上的对齐方式*/
  30. align-content:flex-start;
  31. /*向下的对齐方式*/
  32. align-content:flex-end;
  33. /*居中*/
  34. align-content:center;
  35. /*两端对齐*/
  36. align-content:space-between;
  37. /*分散对齐*/
  38. align-content:space-around;
  39. /*平均分配*/
  40. align-content:space-evenly;
  41. }
  42. </style>
  43. </head>
  44. <body>
  45. <div class="container">
  46. <div class="itme">1</div>
  47. <div class="itme">2</div>
  48. <div class="itme">3</div>
  49. <div class="itme">4</div>
  50. <div class="itme">5</div>
  51. <div class="itme">6</div>
  52. <div class="itme">7</div>
  53. <div class="itme">8</div>
  54. <div class="itme">9</div>
  55. <div class="itme">0</div>
  56. </div>
  57. </body>
  58. </html>
  1. 多行容器对齐方式 align-content:stretch;默认
    多行容器 默认

  2. 多行容器向上对齐 align-content:flex-start;
    多行容器向上对齐

  3. 多行容器向下对齐 align-content:flex-end;
    多行容器向下对齐

  4. 多行容器居中 显示 align-content:center;
    多行容器居中

  5. 多行容器两端对齐 align-content:space-between;
    多行容器两端对齐

  6. 多行容器分散对齐 align-content:space-around;
    多行容器分散对齐

  7. 多行容器平均分配 align-content:space-evenly;
    多行容器平均分配


项目上的属性

  1. flex:flex-grow flex-shrink flex-basis;flex:放大因子 收缩因子 项目在主轴上的基准宽度
  2. flex: 1; 如果只有一个数字,省掉后面二个参数,表示放大因子 等同于 flex:1 1 auto;

  3. align-self: 单个项目的对齐方式

  4. 设置项目在主轴上的显示顺序 order:1; 数字越大越靠后

  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>flex 的属性和属性值的应用</title>
  7. <style>
  8. * {
  9. padding: 0;
  10. margin: 0;
  11. box-sizing: border-box;
  12. }
  13. .container {
  14. /* width: 50em; */
  15. height: 15em;
  16. border: 1px solid #000;
  17. display: flex;
  18. margin: 2em;
  19. padding: 1em;
  20. }
  21. .container>.itme {
  22. width: 5em;
  23. border: 1px solid #000;
  24. }
  25. .container .itme {
  26. /* 默认值*/
  27. flex: 0 1 auto;
  28. flex:initial;
  29. /*允许放大和收缩*/
  30. flex: 1 1 auto;
  31. /*简写*/
  32. flex: auto;
  33. /*禁止收缩和放大*/
  34. flex:0 0 auto;
  35. /*简写*/
  36. flex:none;
  37. /*flex:1 只有一个数字的是 放大因子*/
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <div class="container">
  43. <div class="itme">1</div>
  44. <div class="itme">2</div>
  45. <div class="itme">3</div>
  46. <div class="itme">4</div>
  47. <div class="itme">5</div>
  48. <div class="itme">6</div>
  49. <div class="itme">7</div>
  50. <div class="itme">8</div>
  51. <div class="itme">9</div>
  52. <div class="itme">10</div>
  53. <div class="itme">11</div>
  54. <div class="itme">12</div>
  55. </div>
  56. </body>
  57. </html>
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:markdown语法非常的不熟悉
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