千家信息网

如何在CSS中解决flex-basis文本溢出问题

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容主要讲解"如何在CSS中解决flex-basis文本溢出问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何在CSS中解决flex-basis文
千家信息网最后更新 2025年12月02日如何在CSS中解决flex-basis文本溢出问题

本篇内容主要讲解"如何在CSS中解决flex-basis文本溢出问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何在CSS中解决flex-basis文本溢出问题"吧!

1. flex 家族

flex 里有很多的属性,我们经常用到的就是如下操作:

.container {  display: flex;}.container > .left {  flex: 1;}.container > .right {  flex: 1;}

这样可以很方便的实现一个左右等分的布局。

我们来看一个引起问题的例子:

                  Document            
我比较短

我很长,不是开玩笑的,可以长到没边

我们想要的效果:

但实际的效果:

为什么会出现这个情况?

2. flex-basis 从中作梗

flex: auto 实际上是三个属性的集合:

flex-grow: 1;flex-shrink: 1;flex-basis: auto;

flex-grow 表示放大比例, flex-shrink 表示收缩比例, flex-basis 表示分配多余空间前,项目占据的主轴空间。

我们左边 div 不放大,不缩小,固定 80px 宽度;右边 div 自动铺满剩余宽度也就是 200px - 80px = 120px,实际效果却远远超出了 120px,这是因为 flex-basis 为 auto 时的计算导致的。

我们来看看 flex-basis: auto 的历史:

  • 最初的时候 flex-basis 是由 width/height 决定的;

  • 后来有个bug 1032922 ,flex-basis 的计算就变成了沿主轴的宽度决定了;

  • 后来又出现了一个 bug 1093316 ,又变回了由 width/height 决定且出现了一个新的概念 content 来自动计算宽/高;

所以当我们没有给 flex-basis 元素设置 width 时, flex-basis: auto 由内部的 content 决定宽度,且受 max/min-width 限制。

如此一来,在内部 content 自由的情况下,那么 flex-basis 元素的宽度就看 max/min-width 了。

max-width 的默认值是 none ,而 min-width 的默认值一般是 0 ,而此处却是 auto ,这也是出现"异常"的原因了。

flex-basis 元素:

普通元素:

3. 解决方式

知道原因后,那我们就可以对症下药了。

  • 首先自然是设置 width 属性即可了,只要 width 小于剩余空间即可,一般设置为 width: 0; 这样可百分之百确定小于剩余空间;

  • 不设置 width 但用 min-width 来限制也是一样的,既然 flex 项 的 min-width:auto ,那我们也设置一个小于剩余空间的值,一般也是 min-width: 0;

  • 设置 overflow:hidden 来限制溢出效果也是一致的。

介绍了三种解决方式,再来聊聊前两种为什么可以解决的原因吧。

第一种很简单,width 设置为 0,但是 flex-basis 会让元素填满剩余空间,所以就会铺满,由于 P 元素有不换行显示省略号,会正常显示。

那么第二种呢?

第二种的情况比较复杂,当我们设置了 min-width 不为 auto 的值后,这里会用到 shrink-to-fit 算法,这个算法的计算机制如下:

min(max(preferred minimum width, available width), preferred width)

翻译成人话就是:

  • preferred minimum width:最小宽度

  • available width:可用宽度,也就是content box的宽度

  • preferred width:首选宽度,除了明确换行外的不换行时的宽度

shrink-to-fit 的宽度 = min ( max (最小宽度, 可用宽度) , 首选宽度)

那么来计算一下:

  • 最小宽度:0

  • 可用宽度:272px

  • 首选宽度:200 - 一些七七八八的值剩余部分(98px)

由计算可得:

max(0, 272) = 272

min(272, 98) = 98

所以最终宽度是剩余部分 98px,当我们手动设置 min-width: 110px 时就可以看到超过溢出去了。

到此,相信大家对"如何在CSS中解决flex-basis文本溢出问题"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

宽度 剩余 元素 空间 问题 实际 效果 文本 最小 原因 属性 情况 限制 主轴 也就是 内容 就是 方式 比例 算法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何理解数据库技术 快速录入相同的数据库 服务器需要外置存储吗 西安软件开发服务价格 群控服务器系统价格是多少 炫舞时代服务器断开 女生学网络安全方面有前途吗 360服务器安全防护设置 开服务器的靠什么挣钱 c 开发数据库软件 天津手机软件开发公司 网络安全法的地域适用范围 怎么把代码复制到数据库 数据库 json字符串 名词解释分离数据库 uniprot数据库基本信息 青浦区电话视频系统服务器 华夏恒升互联网科技基金 研学网络安全课程设计 新建数据库 库名为学号姓名 河南暴雨影响网络服务器虚拟主机 网络技术五大空间 联想服务器远程管理卡还原 江阴橙久网络技术有限公司好吗 宿迁公司网络安全准入控制系统 黑客无线网络技术 服务器的企业管理器怎么打开 足疗仪软件开发公司 网站服务器的安全防护策略 海康威视运营管理中心服务器
0