专注app软件定制开发flex:1是什么?

flex:1 是什么?

首先 flex: 1; 等同于 flex: 1 1 auto;

flex: 1 专注app软件定制开发实际上是三个属性的缩写:flex-grow: 1; flex-shrink: 1 flex-basis: auto;

的作用

 flex-grow 专注app软件定制开发的作用是表示在当前元素占多少份的意思。

演示一段代码

  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>Document</title>
  8. <style>
  9. .content {
  10. width: 500px;
  11. display: flex;
  12. }
  13. .box-1 {
  14. background: aqua;
  15. flex-grow: 1;
  16. }
  17. .box-2 {
  18. background: pink;
  19. flex-grow: 1;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <div class="content">
  25. <div class="box-1">box-1</div>
  26. <div class="box-2">box-2</div>
  27. </div>
  28. </body>
  29. </html>

示例图: 

这样表示2个子元素各占1份,填充满整个flex的内容

的作用

 代码演示

  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>Document</title>
  8. <style>
  9. .content {
  10. width: 500px;
  11. display: flex;
  12. }
  13. .box-1 {
  14. background: aqua;
  15. flex-basis: 10%;
  16. }
  17. .box-2 {
  18. background: pink;
  19. flex-basis: 100px;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <div class="content">
  25. <div class="box-1">box-1</div>
  26. <div class="box-2">box-2</div>
  27. </div>
  28. </body>
  29. </html>

示例图:

这边没有设置flex-grow所以默认是flex-grow: 0;

flex-basis表示 flex中的剩余空间的大小。

那么box-1就是占总总宽度(500px)的10%,box-2则占总宽度(500px)的100px;

flex-grow 与 flex-basis 其实类似,区别在于,flex-grow 会填充满整个flex内容,而flex-basis不会通常满整个内容。

的作用

 代码演示

  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>Document</title>
  8. <style>
  9. .content {
  10. width: 500px;
  11. display: flex;
  12. }
  13. .box-1 {
  14. background: aqua;
  15. width: 400px;
  16. flex-shrink: 1;
  17. }
  18. .box-2 {
  19. background: pink;
  20. width: 200px;
  21. flex-shrink: 2;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div class="content">
  27. <div class="box-1">box-1</div>
  28. <div class="box-2">box-2</div>
  29. </div>
  30. </body>
  31. </html>

这边设置flex下2个子元素的宽度分别是 400px 和 300px,可以明显的看出已经超出父元素设置的500px。

那么这是flex-shrink就会起到作用,它会根据flex-shrink设置的值进行收缩。

如果flex-shrink设置为0表示当前元素不会进行收缩,flex-shrink的默认值为1;

 flex-shrink的收缩公示(以这个为例):

子元素超出的宽度 * flex-shrink的值 * 子元素宽度 / 总值;

总值的获取(以当前代码为例):1(box-1的flex-shrink值) * 400(box-1的宽度) + 2(box-2的flex-shrink值) * 300(box-2的宽度) = 1000;

以当前代码为例计算:

 子元素超出的值:500 - (400 + 300) = 200;

总值:1 * 400 + 2 * 300 = 1000;

.box-1收缩的宽度:200 * 1 * 400 / 1000 = 80;

.box-2收缩的宽度:200 * 2 * 300 / 1000 = 120;

实际看效果图

 flex下的子元素确实是按照计算出来的宽度进行收缩了。

那么回归正题,flex:1 等于 flex:1 1 0 就很好理解了,默认情况下 flex 等于 flex 0 1 auto。

实际动手敲一遍代码看看效果会发现其实很好理解😆

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发