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

【css知识】flex-grow: 1

目录

      • 一、基本概念:
      • 二、工作原理:
        • 多个元素的情况:
      • 三、实际应用示例:
        • 常见使用场景:
        • 注意事项:
      • 四、最佳实践:
      • 五、与其他 flex 属性配合:
  • 🚀写在最后

flex-grow: 1是什么? flex-grow 是 CSS Flexbox 布局中的一个重要属性

一、基本概念:

flex-grow 定义了 flex 项目的增长能力
它决定了当容器有多余空间时,项目如何分配这些空间
默认值是 0,表示不增长

二、工作原理:

/* 示例1:两个元素,一个会增长,一个不会 */
.container {display: flex;width: 1000px;
}
.item1 {width: 200px;flex-grow: 1;  /* 会增长 */
}
.item2 {width: 200px;flex-grow: 0;  /* 不会增长 */
}

容器总宽度:1000px
两个元素基础宽度:各 200px
剩余空间:1000px - 400px = 600px
由于 item1 的 flex-grow: 1,它会占据所有剩余空间
最终 item1 宽度:200px + 600px = 800px
item2 保持原宽度:200px

多个元素的情况:
.container {display: flex;width: 1000px;
}
.item1 {width: 200px;flex-grow: 1;  /* 增长比例为1 */
}
.item2 {width: 200px;flex-grow: 2;  /* 增长比例为2 */
}
.item3 {width: 200px;flex-grow: 1;  /* 增长比例为1 */
}

剩余空间:400px
总增长比例:1 + 2 + 1 = 4
item1 获得:400px × (1/4) = 100px
item2 获得:400px × (2/4) = 200px
item3 获得:400px × (1/4) = 100px

三、实际应用示例:

<template><div class="search-form"><!-- 标签固定宽度 --><span class="label">时间维度</span><!-- 选择器区域自适应 --><div class="selector-container"><!-- 类型选择器固定宽度 --><el-select style="width: 80px;"><!-- 选项 --></el-select><!-- 日期选择器自适应 --><el-date-picker style="flex-grow: 1;"><!-- 日期选择器内容 --></el-date-picker></div></div>
</template><style>
.search-form {display: flex;width: 100%;
}.label {width: 100px;  /* 固定宽度 */flex-shrink: 0;  /* 防止压缩 */
}.selector-container {display: flex;flex-grow: 1;  /* 占据剩余空间 */gap: 8px;  /* 元素间距 */
}
</style>
常见使用场景:

导航栏中 logo 固定,菜单项自适应
表单中标签固定,输入框自适应
列表项中图标固定,内容自适应
布局中侧边栏固定,主内容区自适应

注意事项:

flex-grow 只对剩余空间起作用
需要配合 display: flex 使用
通常与 flex-shrink 和 flex-basis 一起使用
考虑最小宽度(min-width)防止内容挤压

四、最佳实践:

/* 1. 基础布局 */
.container {display: flex;width: 100%;
}/* 2. 固定宽度元素 */
.fixed-item {width: 200px;flex-shrink: 0;  /* 防止压缩 */
}/* 3. 自适应元素 */
.flexible-item {flex-grow: 1;min-width: 0;  /* 允许内容收缩 */
}/* 4. 多列布局 */
.multi-column {display: flex;gap: 16px;
}.column {flex-grow: 1;min-width: 200px;  /* 最小宽度 */
}

五、与其他 flex 属性配合:

.flex-item {flex-grow: 1;      /* 增长比例 */flex-shrink: 0;    /* 收缩比例 */flex-basis: auto;  /* 基础大小 *//* 简写形式 */flex: 1 0 auto;
}

flex-grow: 1 是实现自适应布局的重要工具,它让元素能够自动填充剩余空间,特别适合需要响应式布局的场景。通过合理使用 flex-grow,可以创建灵活且自适应的界面布局。

🚀写在最后

希望我的分享能够帮助到更多的人,如果觉得我的分享有帮助的话,请大家一键三连支持一下哦~
❤️原创不易,期待你的关注与支持~
点赞👍+收藏⭐️+评论✍️
😊之后我会继续更新前端学习小知识,关注我不迷路~

相关文章:

  • 数据分析_主播考核指标体系搭建
  • 使用注解动态映射:根据实体List列表动态生成Excel文件
  • 2025-05-20 模型下载--文本向量化--Faiss检索
  • STL中list的模拟
  • 链表原理与实现:从单链表到LinkedList
  • Gin--Blog项目-flags文件解析
  • OpenCV 人脸识别:从基础到实践全解析
  • HarmonyOS5云服务技术分享--云缓存快速上手指南
  • vue2+webpack环境变量配置
  • 开源一个记账软件,支持docker一键部署
  • 详解ip地址、子网掩码、网关、广播地址
  • ArcObjects学习教程
  • CouchDB 可观测最佳实践
  • Centos上搭建 OpenResty
  • 什么是 AI 人工智能?什么是机器学习?什么是深度学习?三者啥关系
  • 企业级 Go 多版本环境部署指南-Ubuntu CentOS Rocky全兼容实践20250520
  • 利用朴素贝叶斯对UCI 的 mushroom 数据集进行分类
  • CentOS 7上部署BIND9 DNS服务器指南
  • RustDesk CentOS自建中继节点
  • CentOS 7上搭建高可用BIND9集群指南
  • 嘴巴总是发干,喝水也不管用?小心是这几种疾病的警报
  • 文化破冰,土耳其亚美尼亚合拍摄影大师阿拉·古勒传记片
  • 交通运输局男子与两名女子办婚礼?官方通报:未登记结婚,开除该男子
  • 揭秘拜登退选内幕新书引争议,“垃圾信息在四处传播”?
  • 抖音开展“AI起号”专项治理,整治利用AI生成低俗猎奇视频等
  • 大学2025丨苏大教授王尧:文科最大的危机是阐释世界的能力弱化