【flex-grow】计算 flex弹性盒子的子元素的宽度大小

计算以下两个子div的宽度大小:

代码如下:

复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #div0 {
            width: 400px;
            height: 500px;
            background-color: aqua;
            display: flex;
        }

        #div0 div {
            width: 200px;
            height: 200px;
            background-color: #c01010;
        }
        #div0 div:nth-child(1) {
            flex-basis: 30%;
            flex-grow: 1;
            background-color: blue;
        }

        #div0 div:nth-child(2) {
            flex-basis: 50%;
            flex-grow: 1;
            background-color: rgb(255, 251, 0);
        }
    </style>
</head>

<body>
    <div id="div0">
        <div></div>
        <div></div>
    </div>
</body>

</html>

分析:

对于第一个子元素 div:nth-child(1):

  • 初始宽度为 flex-basis: 30%,即 30% * 400px = 120px。

对于第二个子元素 div:nth-child(2):

  • 初始宽度为 flex-basis: 50%,即 50% * 400px = 200px。

总的剩余空间:

400-120-200=80

因为两个都设置了flex-frow:1,表示会根据剩余空间进行增长

80/2=40 两个平分40

那么第一个子元素的大小为 120+40=160

第二个子元素的大小为200+40=240

因此,根据计算得到,第一个子元素的宽度为约160px,第二个子元素的宽度为约240px。

拓展:

如果一个设置了flex-grow:1 另外一个是flex-grow:2

那么就是80/3=26.67

第一个为120+26.67=146.67

第二个为200+26.67*2=253.34

你学废了嘛?

相关推荐
去伪存真14 分钟前
构建你的第一个 DevOps AI Agent:自动化捕获、分析并修复 CI 故障
前端·agent
niucloud-admin25 分钟前
JAVA V6 多商户商城 开发文档——手机端前端
java·开发语言·前端
喵个咪28 分钟前
GoWind Admin|风行 — 开箱即用的企业级全栈中后台框架:脚本系统实战
javascript·后端·go
樱花落木兰31 分钟前
SpringBoot + ECharts 后台数据统计报表模块实战
java·javascript·spring boot·ai·log4j·github·echarts
skywalk816335 分钟前
deepseekharness在对话中,有四种模式,分别是极简、PTC、创造和标准模式,每种模式下挂载的插件、skill等数量不一样
前端·人工智能·实践
愛芳芳43 分钟前
element-plus+vite+vue3+pinpa+mock+typeScript搭建经典的电商管理后台
前端·javascript·typescript
liangshanbo12151 小时前
面试题:常见的前端构建工具有哪些?分别适用于什么场景?
前端
事圆则缓1 小时前
Flutter 状态管理框架对比(三):Riverpod 如何连起购物车与异步价格
开发语言·javascript·flutter
linux_cfan1 小时前
videojs v10 源代码系列解读:30 · `SerialRunner` 与 `ConcurrentRunner`
前端
liangshanbo12151 小时前
面试题:页面需要发起大量 Ajax / HTTP 请求时,如何优化请求性能?
前端·http·ajax