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


本篇内容主要讲解“如何在CSS中解决flex-basis文本溢出问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在CSS中解决flex-basis文本溢出问题”吧!1. flex 家族
flex 里有很多的属性,我们经常用到的就是如下操作:这样可以很方便的实现一个左右等分的布局。我们来看一个引起问题的例子:我很长,不是开玩笑的,可以长到没边我们想要的效果:但实际的效果:为什么会出现这个情况?2. flex-basis 从中作梗flex: 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:aut 香港云主机o,那我们也设置一个小于剩余空间的值,一般也是min-width: 0;设置overflow:hidden来限制溢出效果也是一致的。介绍了三种解决方式,再来聊聊前两种为什么可以解决的原因吧。第一种很简单,width 设置为 0,但是flex-basis会让元素填满剩余空间,所以就会铺满,由于 P 元素有不换行显示省略号,会正常显示。那么第二种呢?第二种的情况比较复杂,当我们设置了min-width不为 auto 的值后,这里会用到 shrink-to-fit 算法,这个算法的计算机制如下:翻译成人话就是:preferred minimum width:最小宽度available width:可用宽度,也就是content box的宽度preferred width:首选宽度,除了明确换行外的不换行时的宽度shrink-to-fit 的宽度 = min ( max (最小宽度, 可用宽度) , 首选宽度)那么来计算一下:最小宽度:0可用宽度:272px首选宽度:200 – 一些七七八八的值剩余部分(98px)由计算可得:max(0, 272) = 272min(272, 98) = 98所以最终宽度是剩余部分 98px,当我们手动设置min-width: 110px时就可以看到超过溢出去了。到此,相信大家对“如何在CSS中解决flex-basis文本溢出问题”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: python3中json编码的作用是什么

这篇“python3中json编码的作用是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python3中json编码的作用是什么”文章吧。下…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/18 21:02
下一篇 07/18 21:02

相关推荐