css3[flex-shrink]属性在子项有 padding/box-sizing 属性时,是如何计算子项宽度的?

发布于 2022-09-01 17:49:12 字数 853 浏览 19 评论 0

这里面有一篇文章介绍css3的flex弹性盒布局

http://www.w3cplus.com/css3/flexbox-adventures.html

然后我写了以下这段代码去实验布局,主要是子项目的宽度的计算问题

http://codepen.io/p2227/pen/VvvvyJ

比如这个元素 [flex li:nth-child(1)] 的宽度是 300-(3002)/(2300+1200+2100)*200 = 180px
其他项目也类似

但当我尝试增加一个 padding 属性,代码如下 :

http://codepen.io/p2227/pen/dYYYKx

我就不知道这时候的宽度该怎么算了,按照w3c标准,盒子的宽度应该是width属性+ padding-left + padding-right ,但我发现实际结果并不是这样的

而且加入 box-sizing:border-box;属性之后,更加不知道是怎么算的了,理论上应该和第一种情况是一样的,但实际有出入

http://codepen.io/p2227/pen/rOOOrr

有没有人知道flex的宽度计算的原理?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

就是爱搞怪 2022-09-08 17:49:12

stackoverflow有相对满意回答了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文