Css 为什么弹性项目仅限于父级尺寸?
考虑到下面的例子Css 为什么弹性项目仅限于父级尺寸?,css,flexbox,centering,Css,Flexbox,Centering,考虑到下面的例子 正文{ 保证金:0; } * { 框大小:边框框; } .家长{ 最小高度:100vh; 宽度:50vw; 保证金:0自动; 边框:1px纯红; 显示器:flex; 对齐项目:居中; 证明内容:中心; } .孩子{ 边框:1px纯蓝色; 宽度:150%; } 知识是一种美德,是一种美德,是一种美德,是一种美德。埃米特·泰卢斯·克拉皮斯正在为欧盟turpis做准备。内克·阿利奎姆·莫比·布兰迪特前庭。Sem integer vitae justo eget magna。 <
正文{
保证金:0;
}
* {
框大小:边框框;
}
.家长{
最小高度:100vh;
宽度:50vw;
保证金:0自动;
边框:1px纯红;
显示器:flex;
对齐项目:居中;
证明内容:中心;
}
.孩子{
边框:1px纯蓝色;
宽度:150%;
}
知识是一种美德,是一种美德,是一种美德,是一种美德。埃米特·泰卢斯·克拉皮斯正在为欧盟turpis做准备。内克·阿利奎姆·莫比·布兰迪特前庭。Sem integer vitae justo eget magna。
< /代码> 您需要考虑<代码> flex缩缩< /代码>。正如你所看到的:
flex-shrink CSS属性指定
弹性项目。弹性物品将收缩以填充容器根据
当弹性项目的默认大小较大时,弹性收缩数
比flex容器要大
正文{
保证金:0;
}
* {
框大小:边框框;
}
.家长{
最小高度:100vh;
宽度:50vw;
保证金:0自动;
边框:1px纯红;
显示器:flex;
对齐项目:居中;
证明内容:中心;
}
.孩子{
边框:1px纯蓝色;
宽度:150%;
弹性收缩:0;/*已添加此*/
}
知识是一种美德,是一种美德,是一种美德,是一种美德。埃米特·泰卢斯·克拉皮斯正在为欧盟turpis做准备。内克·阿利奎姆·莫比·布兰迪特前庭。Sem integer vitae justo eget magna。
为什么它会超出其父级?@VXp,为什么不?显然是默认行为。解决问题的方法是使用min width
而不是width
,官方原因仍然不清楚。@TemaniAfif,因为您不希望容器包含比自身更大的内容。默认情况下允许这样做,就能够理解布局而言,简直是疯狂;它降低了您预测实际渲染大小的能力,使您无法知道渲染的每个对象的大小。有关W3C@AndreiGheorghiu的更多信息,我还添加了另一个有趣的链接,详细介绍了这一点behavior@dippas还有Afif。即使现在,正如你所指出的,它很明显是“在规格中描述的”,我仍然觉得它很反直觉:我的意思是,当人们希望孩子的生长超过父宽度时,为什么需要将flex-shrink
设置为特定值?当教学生flexbox时,你需要从“你将听到的没有多大意义,但是……”开始,对吗?这是第二句话的最后一句话,给出了实际的原因,但这对未来的学生来说是很难理解的。一个flexbox获得了答案。:)@AndreiGheorghiu我同意这一点,从一开始就很直观。。。但如果我们的想法不同呢?人们总是抱怨由于宽度导致的溢出:当他们忘记框大小、边框或边距等时,100%+填充。。。所以我认为Flexbox附带这个解决方案最初是为了避免这种情况,默认情况下,他们将flex shrink设置为1。。。如果你现在想完全理解的话,你必须去激活它。Flex从宽度开始,从宽度开始创建Flex基础。然后,它会尝试将所有flex子级放入flex父级中。由于子对象可以收缩,因此它会收缩,并且只有在无法收缩时才会保持width
的值。