flex-shrink: 0 是 CSS Flexbox 布局中的一个关键属性,用于禁止弹性项目(flex item)在容器空间不足时被压缩。以下是详细解释和示例:


核心作用

当容器的可用空间小于所有弹性项目的总宽度(或高度)时:

  • 默认行为flex-shrink: 1):项目会按比例缩小以适应容器。
  • flex-shrink: 0:项目会保持原始大小,拒绝被压缩,可能导致溢出或换行。

示例场景

假设容器宽度为 500px,包含三个项目,每个项目初始宽度为 200px

.container {display: flex;width: 500px;
}
.item {width: 200px;
}
默认行为(flex-shrink: 1

所有项目会按比例缩小,总宽度适配容器:

.item {flex-shrink: 1; /* 默认值 */
}
  • 每个项目实际宽度:500px / 3 ≈ 166.67px
禁止压缩(flex-shrink: 0

若第二个项目设置 flex-shrink: 0

.item:nth-child(2) {flex-shrink: 0;
}
  • 第二个项目保持 200px,其他两个项目按比例分配剩余空间:
    • 剩余空间:500px - 200px = 300px
    • 其他两个项目各占 150px300px / 2

对比其他属性

  • flex-grow:控制项目在容器空间充足时的扩展行为。
  • flex-basis:定义项目的初始大小(类似 width/height)。
  • 简写属性flex: 0 0 auto 等价于 flex-shrink: 0 + 不扩展 + 初始大小为 auto

典型应用场景

  1. 固定关键元素:如导航栏中的 Logo 或按钮,防止被压缩变形。
  2. 响应式布局:在移动端保持某些元素(如侧边栏)的最小宽度。
  3. 表单布局:确保输入框标签不因空间不足而挤压。

注意事项

  • 溢出风险:若多个项目同时设置 flex-shrink: 0,可能导致内容溢出容器。
  • 换行影响:若容器启用 flex-wrap: wrap,溢出项目会自动换行,而非压缩。

通过合理使用 flex-shrink: 0,可以更精准地控制 Flexbox 布局的响应式行为,确保关键元素在空间不足时保持稳定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86825.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86825.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/86825.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WHERE 子句中使用子查询:深度解析与最佳实践

🔍 WHERE 子句中使用子查询:深度解析与最佳实践 在 WHERE 子句中使用子查询是 SQL 的高阶技巧,可实现动态条件过滤。以下是全面指南,涵盖语法、类型、陷阱及优化策略: 📜 一、基础语法结构 SELECT 列 FR…

从0到1:不文明现象随手拍小程序开发日记(一)

前期调研 不文明现象随手拍小程序:在城市的快速发展进程中,不文明现象时有发生,为了有效解决这一问题,提升城市文明程度, 市民若发现不文明行为,如乱扔垃圾、随地吐痰、破坏公共设施、违规停车等&#xff…

STM32F103之SPI软件读写W25Q64

一、W25Q64简介 1.1 简介 W25Q64(Nor flash)、 24位地址,64Mbit/8MByte、是一种低成本、小型化、使用简单的非易失性存储器,常用于数据存储、字库存储、固件程序存储等场景 时钟频率:最大80MHz(STM32F103系统时钟为72MHz…

vue3+element-plus 组件功能实现 上传功能

一、整体功能概述 这段代码实现了一个基于 Vue 3 和 Element Plus 组件库的文件导入及预览功能模块。主要包含了一个主导入对话框(用于上传文件、展示文件相关信息、进行导入操作等)以及一个用于预览文件内容的预览对话框。支持导入特定格式(…

OpenCV中创建Mat对象

第1章 创建Mat对象 1.1. 创建空的 Mat 对象 cv::Mat mat; 1.2. 创建灰度图像 // 创建一个 3 行 4 列、8位无符号单通道矩阵(相当于灰度图) cv::Mat mat(3, 4, CV_8UC1); 1.3. 创建彩色图像 // 创建三通道矩阵(相当于彩色图像&#xff0…

10、做中学 | 五年级下期 Golang循环控制

一、一个小需求 我想要打印10遍hello world,你想怎么编写呢? // 需求:打印10遍"hello world"fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world…

机器学习算法-K近邻算法-KNN

1. K近邻算法是什么? 定义: K近邻是一种基于实例的懒惰学习(Lazy Learning)算法,用于分类和回归任务。 核心思想:“物以类聚”——通过计算样本间的距离,找到目标点的最近K个邻居,…

基于vue框架的法律知识咨询普及系统gwuv7(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能:用户,知识类型,律师,律师推荐,法律知识,新闻类型,法律新闻,咨询律师 开题报告内容 基于Vue框架的法律知识咨询普及系统开题报告 一、研究背景与意义 随着法治社会建设的深入推进,公众对法律知识的需求呈现爆发式增长。然而…

Netty 揭秘CompositeByteBuf:零拷贝优化核心技术

CompositeByteBuf 类 核心设计目标​​ ​​虚拟缓冲区​​:将多个 ByteBuf 合并为单一逻辑视图,减少数据复制。​​零拷贝优化​​:通过组合而非复制提升性能。​​引用计数管理​​:统一管理底层 ByteBuf 的生命周期。 核心成…

用css实现文字字体颜色渐变

用css实现文字字体颜色渐变 background-clip 是CSS3中新增的属性,可以用于指定背景图片或颜色的绘制范围。利用 background-clip 属性实现文字颜色从左到右、从绿到白的渐变效果: 代码如下: .gradient-color {background-image: linear-gr…

SpringBatch处理数据性能优化

SpringBatch的Step默认使用同步方式批量处理数据,也可以通过配置将读数改为同步,处理和写入改为异步方式。 1、同步处理Step SpringBatch的Step一般由ItemReader、ItemProcessor和ItemWriter组成,其中ItemProcessor是可选的。他的设计思路的…

【机器学习深度学习】前馈神经网络(单隐藏层)

目录 一、什么是前馈神经网络? 二、数学表达式是什么? 三、为什么需要“非线性函数”? 四、NumPy 实现前馈神经网络代码示例 五、 运行结果 六、代码解析 6.1 初始化部分 6.2 前向传播 6.3 计算损失(Loss) 6…

设计模式系列(08):创建型模式 - 原型模式

系列导读:完成创建型模式的学习,我们来看最后一个创建型模式——原型模式。它通过复制已有对象来创建新对象,是一种独特的创建方式。 解决什么问题:通过复制现有对象来创建新对象,而不是重新实例化。适用于对象创建成本…

区块链到底是什么?

区块链本质上是一种去中心化的分布式账本技术,具有以下核心特点: - 去中心化:没有中央管理机构,数据由网络中的多个节点共同维护,比如比特币网络中各个节点都保存着完整账本。 - 分布式存储:数据不是存在一…

系统架构设计师论文分享-论ATAM的使用

我的软考历程 摘要 2023年2月,我司通过了研发纱线MES系统的立项,该系统为国内纱线工厂提供SAAS服务,旨在提高纱线工厂的数字化和智能化水平。我在本项目中担任系统架构设计师,负责整个项目的架构设计工作。本文结合我在该项目中…

vue-28(服务器端渲染(SSR)简介及其优势)

服务器端渲染(SSR)简介及其优势 服务器端渲染(SSR)是现代网络应用的关键技术,特别是使用 Vue.js 等框架构建的应用。它通过在服务器上渲染初始应用状态来弥补传统单页应用(SPA)的局限性&#x…

工业电子 | 什么是SerDes,为何工业和汽车应用需要它?

重点内容速览: 1. 什么是SerDes? 2. ADI:私有协议的GMSL将向公有协议转变 3. TI:工业和汽车有两套SerDes解决方案 4. Microchip:推出通用协议SerDes芯片 5. 罗姆:主要针对汽车领域 6. 国产SerDes芯…

大事件项目记录4-用户接口开发-更新用户基本信息

4)更新用户基本信息。 UserController.java: UserMapper.java: Update("update user set nickname #{nickname},email #{email},update_time #{updateTime} where id #{id}")void update(User user); UserServiceInterface…

Transformer结构--输入编码(BPE,PE)

在Transformer结构中,输入编码是模型处理文本数据的关键步骤,其中**BPE(Byte Pair Encoding,字节对编码)和PE(Positional Encoding,位置编码)**是两种重要的编码方式,它们…

Confluence-测试用例设计指导方法

测试经验知识库 典型的测试场景验证点各个项目有价值的经验和测试点 测试经验知识库 - 草稿测试用例执行量化指导建议 何时需要进行全量测试和如何定义和执行测试用例量的一些建议和标准 端对端(E2E)测试用例设计指导方案 在测试行业中,端到端…