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

css 关于flex布局中子元素的属性flex

css flex布局中子元素的属性flex

1. flexflex-growflex-shrinkflex-basis 的简写

语法格式:

flex: [flex-grow] [flex-shrink] [flex-basis];
各属性解析:

flex-grow: 子元素如何按比例分配父元素的 剩余空间

  • 默认值:0(即不分配剩余空间)。
  • 如果设置为 1 或更大值,则子元素会根据此值按比例分配剩余空间。

flex-shrink: 子元素在父容器空间不足时如何按比例 收缩

  • 默认值:1(即允许收缩)。
  • 设置为 0 时,子元素不会收缩。

flex-basis: 子元素在弹性布局中 初始宽度或高度的基准

  • 默认值:auto(即根据内容、widthheight 等值决定)。
  • 如果设置为具体数值(如 0px100px 或百分比 0%100%),则会覆盖 width 的设置。

2. 常见用法解析

单值写法
flex: 1;

等价于:

flex: 1 1 0%;

表示 flex-grow: 1flex-shrink: 1flex-basis: 0%(基准宽度为 0)。

三个值写法
flex: 2 0 100px;

表示

  • flex-grow: 2:子元素会分配两倍的剩余空间(与其他子元素按比例)。
  • flex-shrink: 0:子元素不会收缩。
  • flex-basis: 100px:子元素的基准宽度为 100px
常用缩写模式

flex: auto

  • 等价于 flex: 1 1 auto
  • 子元素会按内容大小决定基础宽度(auto),允许增长和收缩。

flex: none

  • 等价于 flex: 0 0 auto
  • 子元素大小完全由内容决定,不允许增长或收缩。

3. 应用场景

示例 1: 等比例分配剩余空间
<div class="container" style="display: flex;">
  <div class="box1" style="flex: 1;"></div> <!-- 占一份 -->
  <div class="box2" style="flex: 2;"></div> <!-- 占两份 -->
</div>

box1box2 的行为

  • 父元素有剩余空间,box1 占 1 份,box2 占 2 份,按照 1:2 分配。
示例 2: 固定宽度 + 自适应宽度
<div class="container" style="display: flex;">
  <div class="box1" style="flex: 0 0 100px;"></div> <!-- 固定宽度 100px -->
  <div class="box2" style="flex: 1;"></div>         <!-- 剩余空间填充 -->
</div>

box1box2 的行为

  • box1 宽度固定为 100px,不会增长或收缩。
  • box2 自动填充剩余空间。

4. 注意点

1.flex-basis 优先级高于 widthheight

如果同时设置了 widthflex-basisflex-basis 会覆盖 width 的值。

2.默认值

如果未设置 flex,默认值为flex:0 1 auto

  • 不增长flex-grow: 0)。

  • 允许收缩flex-shrink: 1)。

  • 基准宽度由内容决定flex-basis: auto)。

3.父元素的 display: flex 必须设置

  • flex 属性对子元素生效的前提是父元素开启了 flex 布局。

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

相关文章:

  • AI Agent 开发共学招募 | 来 Sui 上探索自治智能的边界
  • 面试高阶问题:对称加密与非对称加密的原理及其应用场景
  • springboot适配mybatis+guassdb与Mysql兼容性问题处理
  • macOS 安装 python3.11
  • Objective-C 是一种面向对象的编程语言
  • 苍穹外卖 项目记录 day03
  • 服务器开发 的设计模式(Design Patterns)核心知识
  • 出现 Error during query execution: StatementCallback; bad SQL grammar 解决方法
  • windows C#-确定字符串是否表示数值
  • 【信息系统项目管理师】高分论文:论信息系统项目的风险管理(资金管控系统)
  • Go语言的 的集合框架(Collections Framework)基础知识
  • 网络安全【C10-2024.10.1】-sql注入基础
  • Oracle DG备库数据文件损坏修复方法(ORA-01578/ORA-01110)
  • 【人工智能数据科学与数据处理】——深入详解大数据与数据库技术之非关系型数据库:MongoDB 的关键概念、核心原理、示例及主要应用
  • 使用Python构建智能医疗诊断系统
  • 解决sublime编译无法输入问题
  • PDF2Audio - 阅读 PDF 的新方式
  • 【工具整理】WIN换MAC机器使用工具整理
  • vue数据请求通用方案:axios的options都有哪些值
  • 《计算机网络A》单选题(详解)
  • 2、蓝牙打印机点灯-GPIO输出控制
  • AdaBoost算法详解与PyTorch实现
  • STM32CUBEMX+PLS_D1000激光测距模块+MT6701角度传感器,获取三角形第三边长度
  • 国内Ubuntu环境Docker部署 SenseVoice
  • Vue动态控制disabled属性
  • 基于单片机的肺功能MVV简单测算