博客列表 >flex项目与容器的常用属性

flex项目与容器的常用属性

庄周梦蝶
庄周梦蝶原创
2020年12月30日 15:20:47485浏览

任何属性通过添加 display:flex 属性可以转成弹性盒子,添加后它的子元素都将会支持flex布局,任何使用过 display:flex 的属性都被称为flex容器;其中的子元素被称为flex项目,会变成行内元素。

  1. <style>
  2. .cont{
  3. height:10em;
  4. box-sizing:border-box;
  5. display:flex;
  6. }
  7. .item{
  8. width:5em;
  9. height:2em;
  10. border: 1px solid;
  11. }
  12. </style>
  13. <body>
  14. <div class="cont">
  15. <div class="item">item1</div>
  16. <div class="item">item2</div>
  17. <div class="item">item3</div>
  18. </div>
  19. </body>

排列方式

  1. <style>
  2. .cont{
  3. height:10em;
  4. box-sizing:border-box;
  5. display:flex;
  6. }
  7. .item{
  8. width:5em;
  9. height:2em;
  10. border: 1px solid;
  11. }
  12. .cont {
  13. /* row默认行方向 */
  14. flex-direction: row;
  15. /* 控制换行方式,默认是摆不下也不换行 */
  16. flex-wrap: nowrap;
  17. /* 上面两行的简写 */
  18. flex-flow: row nowrap;
  19. }
  20. /* 多行容器,允许换行显示 */
  21. .cont {
  22. flex-flow: row wrap;
  23. }
  24. /* 排成列的方向 */
  25. .cont {
  26. /* 竖着排,排不下也不能换行 */
  27. flex-flow: column nowrap;
  28. /* 竖着排,允许换行 */
  29. flex-flow: column wrap;
  30. }
  31. </style>
  32. <body>
  33. <div class="cont">
  34. <div class="item">item1</div>
  35. <div class="item">item2</div>
  36. <div class="item">item3</div>
  37. </div>
  38. </body>


单行对齐方式,一行里面项目对齐方式,前提有剩余空间
主轴对齐方式

  1. <style>
  2. .cont{
  3. height:10em;
  4. box-sizing:border-box;
  5. display:flex;
  6. }
  7. .item{
  8. width:5em;
  9. height:2em;
  10. border: 1px solid;
  11. }
  12. /*1. 项目在一起分配*/
  13. .cont {
  14. /* 左对齐 */
  15. justify-content: flex-start;
  16. /* 右对齐 */
  17. justify-content: flex-end;
  18. /* 居中 */
  19. justify-content: center;
  20. /* 2.项目分开分配 */
  21. /* 两端对齐 ,头和尾不分配,其他的平均分配*/
  22. justify-content: space-between;
  23. /* 分散对齐,每个个体的左右平均分配 */
  24. justify-content: space-around;
  25. /* 平均对齐,每个空隙平均分配*/
  26. justify-content: space-evenly;
  27. }
  28. </style>
  29. <body>
  30. <div class="cont">
  31. <div class="item">item1</div>
  32. <div class="item">item2</div>
  33. <div class="item">item3</div>
  34. </div>
  35. </body>

1.项目在一起分配效果图

2.项目分开分配效果图

项目在多行上的对齐方式

  1. <style>
  2. .cont{
  3. height:10em;
  4. box-sizing:border-box;
  5. display:flex;
  6. border: 1px solid;
  7. }
  8. .item{
  9. width:5em;
  10. height:2em;
  11. border: 1px solid;
  12. }
  13. .cont {
  14. flex-flow: row wrap;
  15. /* 默认值,充满整个空间 */
  16. align-content: stretch;
  17. /* 网上跑 */
  18. align-content: flex-start;
  19. /* 往下跑 */
  20. align-content: flex-end;
  21. /* 居中 */
  22. align-content: center;
  23. /* 两端对齐 最开始后最后不分配空间,其他行间距相等*/
  24. align-content: space-between;
  25. /* 分散对齐 每行两边的空间是相等的*/
  26. align-content: space-around;
  27. /* 每行平均分配 */
  28. align-content: space-evenly;
  29. }
  30. </style>
  31. <body>
  32. <div class="cont">
  33. <div class="item">item1</div>
  34. <div class="item">item2</div>
  35. <div class="item">item3</div>
  36. <div class="item">item4</div>
  37. <div class="item">item5</div>
  38. <div class="item">item6</div>
  39. <div class="item">item7</div>
  40. <div class="item">item8</div>
  41. <div class="item">item9</div>
  42. <div class="item">item10</div>
  43. <div class="item">item11</div>
  44. <div class="item">item12</div>
  45. </div>
  46. </body>


单个项目的属性应用

  1. <style>
  2. * {box-sizing: border-box;}
  3. .container {
  4. display: flex;
  5. height: 15em;
  6. border: 1px solid;
  7. padding: 1em;
  8. margin: 1em auto;
  9. }
  10. .container > .item {
  11. width: 5em;
  12. background-color: lightcyan;
  13. border: 1px solid;
  14. }
  15. .container .item{
  16. /* flex: 放大因子 收缩因子 项目在主轴上的基准宽度; */
  17. /* 这个意思就是可放大和收缩 */
  18. flex: 1 1 auto ;
  19. /* 这是上面的简写 */
  20. flex: auto;
  21. /* 禁止放大和收缩 */
  22. flex: 0 0 auto;
  23. flex: none;
  24. /* 一个值就是放大 */
  25. /* 这是上面放大和收缩的简写,里面的数字1往上在所以项目里面是没有用的和1一样 */
  26. flex: 1;
  27. /* 不会设置所以的项目默认选项,通常来设置一个项目 */
  28. }
  29. .container>.item:first-of-type, .container>.item:last-of-type{
  30. flex: 1;
  31. }
  32. .container>.item:nth-of-type(2), .container>.item:nth-of-type(3){
  33. /* 对单个项目使用时,写数字几就是上个数字1的几倍 */
  34. flex: 2;
  35. }
  36. </style>
  37. <body>
  38. <div class="container">
  39. <div class="item">item1</div>
  40. <div class="item">item2</div>
  41. <div class="item">item3</div>
  42. <div class="item">item4</div>
  43. </div>
  44. </body>


项目的排列循序和单个项目的对齐方式

  1. <style>
  2. * {
  3. box-sizing: border-box;
  4. }
  5. .container {
  6. display: flex;
  7. height: 15em;
  8. border: 1px solid;
  9. padding: 1em;
  10. margin: 1em auto;
  11. flex-flow: row wrap;
  12. }
  13. .container > .item {
  14. width: 5em;
  15. height: 2em;
  16. background-color: lightcyan;
  17. border: 1px solid;
  18. }
  19. .container > .item:nth-of-type(2) {
  20. /* 想要改它个体的位置就用order:0;默认是0位,其中数越小越往前,支持负数 */
  21. order: 2;
  22. }
  23. .container > .item:nth-of-type(3) {
  24. /* 单个项目的对齐方式 */
  25. /* 中 */
  26. align-self: center;
  27. /* 上 */
  28. align-self: flex-start;
  29. /* 下 */
  30. align-self: flex-end;
  31. order: 0;
  32. }
  33. </style>
  34. <body>
  35. <div class="container">
  36. <div class="item">item1</div>
  37. <div class="item">item2</div>
  38. <div class="item">item3</div>
  39. <div class="item">item4</div>
  40. </div>
  41. </body>

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