【css】深入理解flex属性

参考文章:
深入理解Flex属性
flex弹性布局教程-05-项目属性flex-shrink

flex:flex-grow flex-shrink flex-basis

flex:0 1 0

如何计算flex布局,有flex-shrink和flex-grow的情况下,每个元素的大小

flex-grow生效公式如下:

可用空间 = 父元素width - 子元素flex-basis总和

单位扩展空间 = 可用空间/子元素flex-grow总和

元素的实际大小 = flex-basis + flex-grow*单位扩展空间

flex-shrink生效公式如下:

理想空间 = 所有子元素的(flex-basisflex-shrink)之和
溢出空间 = 父元素容器的宽度 - 所有子元素的(flex-basis)之和
每个元素的收缩因子= (flex-basis * flex-shrink) / 理想空间
元素的实际大小 = flex-basis + 收缩因子
溢出空间

1、flex-basis

flex-basis是伸缩的基准值,也就是它来决定我们元素的宽度。

flex-basis的默认值是0,如果值为auto的话,将会是我们设置的宽度大小,它的优先级高于我们设置的width属性

flex-basis也决定着flex-grow和flex-shrink的生效情况:

  • 当所有子元素的flex-basis之和大于父元素容器的宽度的时候,flex-shrink生效
  • 当所有子元素的flex-basis之和小于父元素容器的宽度的时候,flex-grow生效
2、flex-shrink

flex-shrink是收缩比例,当子元素flex-basis之和大于父元素容器宽度的时候生效

flex-shrink的默认值是1,当值为0的时候,元素将不会收缩

3、flex-grow

flex-grow是伸张比例,也是每个元素占据盒子宽度的比例,当子元素flex-basis之和小于父元素容器宽度的时候生效

flex-grow的默认值是0,因此当没有设置这个属性的时候,其实其他元素都是和他一样的比例,占比同等大小

相关推荐
竹林8189 分钟前
用 The Graph 查询链上数据实战:从手搓 RPC 到 Subgraph,我的 NFT 项目数据加载快了 10 倍
前端·javascript
妙码生花26 分钟前
从 PHP 到 AI + Golang,程序员自救转型手记(十九):点选验证码代码逐行目检
前端·后端·go
Awu12271 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
咪库咪库咪2 小时前
Vue3-生命周期
前端
莪_幻尘2 小时前
你的 AI Skill 越多越蠢?Token 上下文爆炸的求生指南
前端·ai编程
lichenyang4532 小时前
从 has.echo 到异步 API 注册表:一次 ASCF API 回调不触发的排查复盘
前端
林瞅瞅3 小时前
Nuxt3 项目部署 Nginx 防盗链后特定 JS 文件 403 问题修复方案
前端
kyriewen3 小时前
别再每次都 Google 了:我整理了前端日常最常踩的 10 个 Git 坑,附速查表
前端·javascript·git
一颗奇趣蛋3 小时前
Web 视频开发完全指南:从入门到精通
前端
非洲农业不发达4 小时前
windows终端体验大升级,让你拥有macos级别的美化
前端·后端