ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# flex 项目放大因子 ## 1. `flex-grow`属性 - 在容器主轴上存在剩余空间时, `flex-grow`才有意义 - 该属性的值,称为**放大因子**, 常见的属性值如下: | 序号 | 属性值 | 描述 | | ---- | --------- | -------------------- | | 1 | `0`默认值 | 不放大,保持初始值 | | 2 | `initial` | 设置默认值,与`0`等效 | | 3 | `n` | 放大因子: 正数 | --- ## 2. 示例 ![](https://img.kancloud.cn/e5/93/e59325c682943c3fbaf063db62d3d6e9_376x222.jpg) ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>flex 项目放大因子</title> <style> /* 容器尺寸 */ .container { width: 300px; height: 150px; } /* flex容器 */ .container { display: flex; } /* flex项目 */ .item { width: 50px; height: 50px; background-color: lightcyan; font-size: 1.5rem; /* flex-grow默认值: 不放大 */ flex-grow: initial; /* 与0等效 */ flex-grow: 0; /* 允许项目放大,将剩余空间平均分配给每一个项目 */ flex-grow: 1; } /* 自定义项目放大因子 */ .item:first-of-type { background-color: lightgreen; flex-grow: 1; } .item:nth-of-type(2) { background-color: yellow; flex-grow: 2; } .item:last-of-type { background-color: lightskyblue; flex-grow: 3; } /* 项目放大的计算方法(以主轴水平,宽度增长为例) 1. 主轴剩余空间宽度: 300 - (50 * 3 ) = 150px 2. 增长因子之和: 1 + 2 + 3 = 6 3. 每个增长因子对应的增长量是: 150 / 6 = 25px 4. 每个项目根据自身增长因子计算增长量: 4.1 第一个项目: 1 * 25 = 25px 4.2 第一个项目: 2 * 25 = 50px 4.3 第三个项目: 3 * 25 = 75px 5. 计算每个项目最终宽度: 5.1 第一个项目: 50 + 25 = 75px 5.2 第二个项目: 50 + 50 = 100px 5.3 第三个项目: 50 + 75 = 125px 6. 更换主轴方向后, 计算方式完全一样,请自行测试 */ </style> </head> <body> <div class="container"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> </div> </body> </html> ```