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

Tailwind CSS `shrink-0`是啥意思?

Tailwind CSS近几年大受欢迎,github一些炙手可热的项目有的都用上了。


原子化 和 语义化 的区别

tailwind 是属于原子化css这种类型的。

语义化

之前我们常写的有语义化css,代码如下:

.chat { display: flex; max-width: 24rem; margin: 0 auto; padding: 2rem; }

原子化

原子 化是更加关注css,代码如下:

<div class="p-6 max-w-sm flex items-center"></div>

用写class来表示css规则,比如:

bg-white 代表background-color: white;

这种的话就比较适合那种没有设计师具体到哪个像素,具体到什么什么单位的。适合独立开发或者小公司,前端去做中后台管理系统那种。


在使用 Flexbox 创建响应式布局时,控制元素是否“收缩”是个非常关键的问题。

Tailwind 提供了一个非常实用的类:shrink-0,它能让你的某些元素在容器空间不足时保持原样不被压缩。本文将带你彻底搞懂它的原理、用法与最佳实践。


什么是shrink-0

简单来说,shrink-0就是flex-shrink: 0的快捷写法。默认情况下,所有 Flex 子元素都有flex-shrink: 1,也就是说当空间不足时,它们会按比例变小。而shrink-0则禁止这一行为——该元素保持自己的尺寸,不管父容器有多小。

用途包括:

  • 保证 logo、头像、图片等关键元素不被压缩;
  • 实现左右固定+中间弹性布局;
  • 创建稳定的卡片排版结构。

它到底怎么运作?

flex-shrink是个比例因子。假设容器不足以容纳所有项目,就会出现“负空间”。浏览器会根据每个子项的flex-shrink值和大小,计算应该压缩多少。

公式如下:

收缩量 = (该项目 shrink × 它的原始宽度) / 所有项目 shrink*宽度之和 × 负空间

如果你设置的是shrink-0,那它乘上原始宽度就是 0,自然就不会被压缩了。

实战演示

示例一:防止图片被压缩

<div class="flex w-64 border"> <div class="shrink-0 w-32 h-32 bg-blue-500 text-white flex items-center justify-center"> 固定宽度 </div> <div class="p-4 bg-red-500 text-white"> 内容会根据空间自动收缩 </div> </div>

示例二:导航栏中的应用

<nav class="flex items-center bg-gray-800 text-white p-4"> <div class="shrink-0 mr-4"> <svg class="w-8 h-8" viewBox="0 0 20 20">...</svg> </div> <div class="flex space-x-4 overflow-x-auto"> <a href="#">首页</a> <a href="#">产品</a> <a href="#">服务</a> </div> <div class="shrink-0 ml-auto"> <button class="bg-gray-700 p-2 rounded-full">用户</button> </div> </nav>

响应式技巧 & 高阶玩法

  • 响应式收缩控制
<div class="flex"> <div class="shrink md:shrink-0 w-32 bg-blue-500">小屏收缩,大屏固定</div> <div class="flex-1 bg-gray-100">内容</div> </div>
  • flex-1组合:
<div class="flex min-h-[200px]"> <div class="shrink-0 w-48 bg-gray-200">固定侧边栏</div> <div class="flex-1 bg-white">主内容</div> </div>
  • 动态交互 + 过渡效果:
<div class="flex"> <div class="shrink-0 hover:shrink transition-all duration-300 w-32 h-32 bg-green-500"> 悬停时尝试收缩 </div> <div class="flex-1 bg-yellow-500">其他内容</div> </div>

常见疑问

  • shrink-0flex-none有啥区别?

    • shrink-0只设置了不收缩;
    • flex-noneflex: none,包括不增长、不收缩、宽度自适应。
  • shrink-0没效果?

    • 父元素可能没有加flex
    • 容器空间够用时自然不会收缩
    • 元素本身宽度设置不合理

最佳实践小贴士

  • 保住关键内容不被压缩(如:Logo、图标、按钮)
  • 配合overflow-auto实现优雅滚动
  • 长列表中慎用(避免渲染性能问题)
  • 响应式控制:小屏可收缩,大屏固定显示

总结一句话

只要你想“锁住”某个元素,让它不管外界怎么变都不缩水,shrink-0就是你的好帮手

http://www.jsqmd.com/news/957620/

相关文章:

  • 人民教育出版社图书溯源项目实践 - 资讯焦点
  • 投资分析工作流——用EXCEL实现从数据到决策的完整闭环
  • Teamcenter许可优化,4款工具成熟度对比
  • AI 如何颠覆小企业
  • 2026苏州好评多的防水补漏服务商深度解析:资质、技术与场景适配综合评估 - 鼎壹万修缮说
  • YOLOv11涨点改进| ICCV 2025 | 独家创新、注意力改进篇| 引入CBSM通道增强与智能空间映射模块,含多种创新改进,助力红外小目标检测、图像分割、图像分类、PCL缺陷检测高效涨点
  • 某学校的jwt漏洞
  • Cursor Free VIP:智能绕过Cursor AI试用限制的完整解决方案
  • QNAP 双路全闪存底座:化解锂电池涂布与卷绕产线高频控制数据库 I/O 锁链
  • SteamCMD从下载到开服:一份给Windows/Linux小白的避坑指南(含依赖安装、目录设置、更新命令详解)
  • 友思特方案|搭载 ZED 系列双目相机,友思特深度视觉赋能具身智能,助推人形机器人产业化落地
  • 【RT-DETR实战】137、Transformer模型压缩:从RT-DETR实战看TinyViT的轻量化哲学
  • 2026苏州本土专业防水补漏公司综合测评:技术体系与服务能力深度解析 - 鼎壹万修缮说
  • 美股是否处于估值偏高状态
  • 小鹏机器人元老施晓鑫离职,正值IRON量产关键期
  • 智能邻里事件自动分拨准确率为何卡在76.3%?——用因果推断重构AI决策链,3周提升至94.8%(附AB测试代码库)
  • APP攻防-资产收集篇FridaHookJS技术综合信息提取双向证书绕过
  • 3步搞定电脑重复图片清理:AntiDupl.NET智能去重工具实战指南
  • 如何通过HSTracker实现专业级炉石传说对战分析:从基础部署到高级数据挖掘
  • 2026苏州靠谱防水补漏合作渠道测评:技术实力、服务效率与场景适配性分析 - 鼎壹万修缮说
  • DazToBlender终极指南:5分钟学会3D角色跨软件迁移
  • 软件开发外包新手避坑指南:首次合作零翻车的实战标准流程
  • 青椒科研:为医学工作者量身打造的专业资源索引平台
  • GEO源码主体杭州爱搜索:如何为中小企业搭建自主AI搜索优化体系 - 品牌报告
  • 区块链作业
  • 提升 Shopify 转化率的 10 个实战技巧
  • 揭秘!山东拓兴尼龙衬板多维度测评,7.3分表现究竟几何?
  • Veo 2运动设置避坑清单,2024最新版:3类误触触发、2种IMU漂移陷阱、1个不可逆校准风险
  • B站CC字幕一键下载转换:告别手动抄录,3分钟搞定视频字幕提取
  • YOLOv11涨点改进| ICCV 2025 | 独家创新、特征融合改进篇| 引入I-SCA / V-SCA特征融合模块,含多种创新改进,助力图像融合、小目标检测、图像分割、多模态融合检测高效涨点改进