当前位置: 首页 > article >正文

CSS3弹性布局之flex-shrink属性的通俗解释和计算过程演示

CSS3弹性布局之flex-shrink属性的通俗解释和计算过程演示


1. 核心概念

  • flex-shrink 决定了当容器空间不足时,各个子项如何按比例缩小。
  • 默认值为 1:所有子项默认按相同比例缩小。
  • 值越大:该项目被压缩得越狠。

2. 示例场景

假设有以下三个子项,容器宽度为 400px

子项原始宽度flex-shrink值
项目1200px1
项目2300px2
项目3200px3

总需求宽度 = 200 + 300 + 200 = 700px
容器实际宽度 = 400px
空间不足量 = 700 - 400 = 300px(需要压缩这300px)


3. 计算步骤

步骤1:计算权重分母

将每个子项的 原始宽度 × flex-shrink值 相加:

(200 × 1) + (300 × 2) + (200 × 3) = 200 + 600 + 600 = 1400
步骤2:计算每个子项的压缩比例
  • 项目1压缩比例 = (200 × 1) / 1400 = 200/1400 ≈ 0.1429
  • 项目2压缩比例 = (300 × 2) / 1400 = 600/1400 ≈ 0.4286
  • 项目3压缩比例 = (200 × 3) / 1400 = 600/1400 ≈ 0.4286
步骤3:计算每个子项实际压缩量

压缩比例 × 总不足空间(300px)

  • 项目1压缩量 = 0.1429 × 300 ≈ 42.86px
  • 项目2压缩量 = 0.4286 × 300 ≈ 128.57px
  • 项目3压缩量 = 0.4286 × 300 ≈ 128.57px
步骤4:计算最终宽度
  • 项目1最终宽度 = 200 - 42.86 ≈ 157.14px
  • 项目2最终宽度 = 300 - 128.57 ≈ 171.43px
  • 项目3最终宽度 = 200 - 128.57 ≈ 71.43px

4. 效果对比

子项原始宽度压缩后宽度压缩比例直观表现
项目1200px157.14px14.29%压缩最少
项目2300px171.43px42.86%压缩较多
项目3200px71.43px42.86%压缩最多

5. 关键规则总结

  1. 分母计算Σ(原始宽度 × flex-shrink),代表总压缩权重。
  2. 压缩比例:每个子项的 (原始宽度 × flex-shrink) / 分母
  3. 压缩量压缩比例 × 总不足空间
  4. 最终宽度原始宽度 - 压缩量

6. 实际应用技巧

  • 禁止压缩:设置 flex-shrink: 0,固定子项宽度。
  • 优先级控制:通过调整 flex-shrink 值,控制不同子项的压缩程度。
  • 响应式布局:结合 flex-growflex-basis 实现灵活伸缩。

http://www.kler.cn/a/576874.html

相关文章:

  • 基于DeepSeek实现PDF嵌入SVG图片无损放大
  • 扫雷雷雷雷雷雷雷
  • 蓝桥杯P19718-回文字符串 题解
  • GET3D:从图像中学习的高质量3D纹理形状的生成模型
  • Bolt AI 技术浅析(五):实时编辑
  • C++20 DR11:数组 `new` 可以推导出数组大小
  • 常见的 Git 命令
  • Python 远程抓取服务器日志最后 1000行
  • c# 2025/3/8 周六
  • 网络运维学习笔记(DeepSeek优化版) 013网工初级(HCIA-Datacom与CCNA-EI)ACL访问控制列表
  • JAVA Spring Boot @Bean 注解的使用和注意事项
  • 【每日学点HarmonyOS Next知识】Tab切换声明周期、复杂Json组装、scroll最大高度、引用传递报错、Web性能
  • saltstack通过master下发脚本批量修改minion_id,修改为IP
  • 递归专题刷题
  • 大模型工程师学习日记(十五):Hugging Face 模型微调训练(基于 BERT 的中文评价情感分析)
  • Python写一个查星座的小程序,适合初学者练手——字典和if语句练习
  • ARMV8的64位指令
  • cdn取消接口缓存
  • Redis 各数据类型使用场景详解
  • Scaling Laws for Neural Language Models