Blogger Information
Blog 64
fans 2
comment 1
visits 47060
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
flex 属性和常用属性的应用
Y的博客
Original
711 people have browsed it

flex

1. 术语

  1. 容器: 具有display:flex属性元素
  2. 项目: flex 容器的”子元素”
  3. 主轴: 项目排列的轴线
  4. 交叉轴: 与主轴垂直的轴线

2. 容器属性

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

3. 项目属性

序号 属性 描述
1 flex 项目的缩放比例与基准宽度
3 align-self 单个项目在交叉轴上的对齐方式
4 order 项目在主轴上排列顺序

容器属性

  • 弹性容器与弹性项目
  1. 任何元素都可以通过添加display: flex属性,转为弹性盒元素
  2. 转为flex元素后,它的内部的”子元素”就支持flex布局了
  3. 使用了display: flex属性的元素称为: flex容器
  4. flex容器中的”子元素”称之为: flex项目
  5. 容器中的项目自动转为”行内块元素”(不管之前是什么类型)

  1. <style>
  2. * {
  3. margin: 0;
  4. padding: 0;
  5. box-sizing: border-box;
  6. }
  7. .container {
  8. /* 转为弹性盒子布局 */
  9. /* 转为flex元素后,它的内部的"子元素"就支持flex布局了 */
  10. display: flex;
  11. height: 5em;
  12. border: 1px solid #000;
  13. background-color: aquamarine;
  14. padding: 1em;
  15. margin: 1em;
  16. }
  17. .container>.item {
  18. height: 2em;
  19. width: 5em;
  20. background-color: beige;
  21. border: 1px solid #000;
  22. }
  23. .container>.item:nth-of-type(3) {
  24. display: flex;
  25. }
  26. .container>.item:nth-of-type(3)>* {
  27. background-color: lightskyblue;
  28. border: 1px solid #000;
  29. }
  30. </style>
  • 弹性项目在主轴的排列方式

    1. <style>
    2. * {
    3. margin: 0;
    4. padding: 0;
    5. box-sizing: border-box;
    6. }
    7. .container {
    8. display: flex;
    9. height: 15em;
    10. border: 1px solid #000;
    11. background-color: aquamarine;
    12. padding: 1em;
    13. margin: 1em;
    14. }
    15. .container>.item {
    16. height: 5em;
    17. width: 5em;
    18. background-color: beige;
    19. border: 1px solid #000;
    20. }
    21. /* 单行容器 */
    22. .container {
    23. /* flex-flow: 第一个参数是主轴方向 第二个是是否换行; */
    24. /* 默认值是flex-flow:row nowrap; */
    25. flex-flow:row nowrap;
    26. }
    27. /* 多行容器,一行显示不下容许换行(根据屏幕自动换行) */
    28. .container {
    29. flex-flow: row wrap;
    30. }
    31. /* 在一列显示 */
    32. .container {
    33. /* 主轴转为列方向,不换行 */
    34. flex-flow:column nowrap;
    35. /* 主轴转为列方向,换行 */
    36. flex-flow: column wrap;
    37. }
    38. </style>
  • 弹性项目在单行容器的对齐方式
    1. <style>
    2. * {
    3. margin: 0;
    4. padding: 0;
    5. box-sizing: border-box;
    6. }
    7. .container {
    8. /* 转为弹性盒子布局 */
    9. display: flex;
    10. height: 15em;
    11. border: 1px solid #000;
    12. background-color: aquamarine;
    13. padding: 1em;
    14. margin: 1em;
    15. }
    16. .container>.item {
    17. /* height: 5em; */
    18. width: 5em;
    19. background-color: beige;
    20. border: 1px solid #000;
    21. }
    22. /* 设置单行容器上轴上对齐的前提是:主轴存在剩余空间 */
    23. .container {
    24. /* 空间分配的两种方案 */
    25. /* 1.将所有项目视为一个整体,在项目两边进行分配 */
    26. /* 项目左对齐 */
    27. justify-content: flex-start;
    28. /* 项目右对齐 */
    29. justify-content: flex-end;
    30. /* 项目居中对齐 */
    31. justify-content: center;
    32. /* 2.将项目视为一个个独立的个体,在项目之间进行分配 */
    33. /* 两端对齐 剩余空间在除了收尾两个元素之间平均分配*/
    34. justify-content: space-between;
    35. /* 分散对齐 剩余空间在每个项目两端平均分配*/
    36. justify-content: space-around;
    37. /* 平均对齐 剩余空间在每个项目之间平均分配 */
    38. justify-content: space-evenly;
    39. }
    40. /* 在交叉轴上的对齐方式 */
    41. .container {
    42. /* 默认拉升 */
    43. align-items: stretch;
    44. align-items: flex-start;
    45. align-items: flex-end;
    46. align-items: center;
    47. }
    48. </style>
  • 弹性项目在多行容器的对齐方式

    1. .container {
    2. /* 主轴为行,换行 */
    3. flex-flow: row wrap;
    4. /* 模认拉升*/
    5. align-content: stretch;
    6. /* 向上对齐 */
    7. align-content: flex-start;
    8. /* 向下对齐 */
    9. align-content: flex-end;
    10. /* 垂直居中对齐 */
    11. align-content: center;
    12. /* 两端对齐 */
    13. align-content: space-between;
    14. /* 分散对齐 */
    15. align-content: space-around;
    16. /* 平均对齐 */
    17. align-content: space-evenly;
    18. }

    项目属性

  • 项目属性flex
    1. .container .item {
    2. /* flex: flex-grow flex-shrink flex-basis */
    3. /* flex: 放大因子 收缩因子 项目在主轴上的基准宽度 */
    4. /* 默认值,不放大或收缩 */
    5. flex: 1 0 auto;
    6. flex: initial;
    7. /* 允许放大或收缩 */
    8. flex: 1 1 auto;
    9. flex: auto;
    10. /* 禁止放大或收缩 */
    11. flex: 0 0 auto;
    12. flex: none;
    13. /* 如果只写一个数字,省去后面两个参数,表示放大因子 */
    14. flex: 1;
    15. /* 等于 */
    16. flex: 1 1 auto;
    17. flex: 2;
    18. /* flex通常不会用来设置所有项目的默认选项,通常用来设置某一个项目的特征 */
    19. }
    20. /* 要求第2个和第3个项目的宽度是第1个和第四个的2倍 */
    21. .container>.item:first-of-type,
    22. .container>.item:last-of-type {
    23. flex: 1;
    24. }
    25. .container>.item:nth-of-type(2),
    26. .container>.item:nth-of-type(2)+* {
    27. flex: 2;
    28. }
  • 设置第2个项目与其它项目的对齐方式不一样
    1. .container>.item:nth-of-type(2) {
    2. align-self: stretch;
    3. align-self: flex-start;
    4. align-self: flex-end;
    5. align-self: center;
    6. position: absolute;
    7. left: 2em;
    8. top: 3em;
    9. }
  • 项目在主轴上的显示顺序

    1. .container>.item {
    2. /* height: 5em; */
    3. width: 5em;
    4. background-color: beige;
    5. border: 1px solid #000;
    6. }
    7. /* 显示顺序:默认按书写的源码顺序排列 */
    8. /* 默认序号越小越靠前,越大越靠后 */
    9. .container>.item:first-of-type{
    10. order: 2;
    11. background-color: khaki;
    12. }
    13. .container>.item:nth-of-type(2){
    14. order: 3;
    15. background-color: lawngreen;
    16. }
    17. .container>.item:nth-of-type(3){
    18. order: 4;
    19. background-color: lightcoral;
    20. }
    21. .container>.item:nth-of-type(4){
    22. order: 1;
    23. }
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