flex-basis 弹性基础属性

最后更新:2026-09-13

flex-basis flex-basis 弹性基础属性

flex-basis 属性用于设置弹性项目在分配剩余空间之前的初始主轴尺寸,可以理解为项目的"理想大小"。它的默认值为 auto,表示项目按内容或设定的 width/height 决定基础尺寸。设置为具体长度值后,项目会以此为基础,再根据 flex-grow 和 flex-shrink 进行伸缩。

分类
初始值auto
继承
适用于
可动画
CSS 版本CSS3
状态标准

📝 语法

flex-basis: auto | content | <length> | <percentage>;

⚙️ 取值

类型描述
auto | content关键字自动或内容决定
<length> | <percentage>类型固定基础尺寸

▶ 示例

编辑下方代码,在 playground 中查看实时效果:

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
flex-basis v29 v12 v28 v9 v17
所有主流浏览器均支持
提示: 当 flex-basis 为 0 时,所有项目的基础尺寸都被视为 0,剩余空间完全按 flex-grow 比例分配,常用于实现等宽列布局。
重要: flex-basis 的优先级高于 width/height,但低于 max-width/max-height 和 min-width/min-height。当同时设置 flex-basis 和 width 时,flex-basis 会覆盖 width。

❓ 常见问题

Qflex-basis 和 width 有什么区别?
A弹性布局中 flex-basis 优先级高于 width:它决定子项在主轴上的初始尺寸并参与伸缩计算,width 只在 flex-basis 为 auto 时生效。建议弹性项目用 flex-basis 定义基础尺寸,width 留给非弹性场景。
Qflex-basis: auto 和 flex-basis: content 有什么区别?
Aauto 表示按子项的内容或设定的 width/height 决定基础尺寸;content 表示完全按内容决定基础尺寸,忽略 width/height 设置。content 关键字的浏览器兼容性较差,实际项目中推荐用 auto,效果在大多数场景下已足够。
Qflex-basis: 0 和 flex-basis: auto 有什么区别?
Aflex-basis: auto 以内容或 width 作为基础尺寸,内容不同的子项基础宽度不同,剩余空间再按 flex-grow 分配;flex-basis: 0 让基础宽度归零,剩余空间完全按比例分配,能实现严格等宽。flex: 1 是 1 1 0%,flex: auto 是 1 1 auto,两者效果截然不同。

📚 相关教程

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏