我需要帮助,以通俗易懂的英语理解这种弹性样式

时间:2019-02-14 19:21:31

标签: css flexbox

我需要帮助,以通俗的英语理解flex: 0 0 673px对我的元素的作用。

我已经阅读了CSS技巧文档和其他mdn,但没有帮助。如果有人可以向我解释它,而我希望能够向我的孩子解释它,那将会有所帮助。

显然我不是CSS专家,谢谢。

3 个答案:

答案 0 :(得分:2)

我不确定我还能解释CSS技巧没有什么,但是我会尝试。

第一个值是flex-grow值,该值定义它将增长多少剩余分数。在这种情况下,由于将其设置为0,这意味着它不会增长并且不会变宽。

第二个值是flex-shrink值,它定义了它将收缩的剩余分数的多少。在这种情况下,由于将其设置为0,这意味着它不会收缩并且宽度不会变小。

第三个值是flex基础,用于确定由于将其设置为673px而没有其他值被计算时的基本宽度应该是多少。

如果在不使用flex的地方,当前值与宽度相同:673px;

我敢肯定,如果我在解释中犯了一个错误,那么有人可以看到它。

希望有帮助。

答案 1 :(得分:0)

来自MDN

  

flex属性可以使用一个,两个或三个值来指定。

     

[...]

     

三值语法:

     

由此,我们可以看出flex: 0 0 673px;是简写,但是并不能真正告诉我们每个值的含义。相当于长篇文字:

flex-grow: 0;
flex-shrink: 0;
flex-basis: 673px;

因此,让我们依次查看每个属性。让我们从flex-basis开始,因为它的名称中有“ basis”字样,听起来像是一个很好的起点。

flex-basis

  

flex-basis CSS属性设置弹性项目的初始主要尺寸。除非另行设置box-sizing,否则它将设置内容框的大小。

计算弹性版图是一个包含多个阶段的过程。忽略关于box-sizing的部分,此属性告诉布局引擎通过在flex方向上将每个元素设置为该大小来开始。它还有一些其他特殊值(detailed on MDN),但这是要点。

flex-grow

  

flex-grow CSS属性设置应将flex容器中的多少可用空间分配给该项目(flex增长因子)。

如果flex容器大于其中的每个元素的组合基础尺寸,则布局引擎将拉伸和/或展开元素以填充容器。此属性指定一种比例因子。将flex-grow设置为2的元素将拉伸为设置为1的元素的两倍。 A value of 0 tells the layout engine to never stretch this element.

flex-shrink

  

flex-shrink CSS属性可设置弹性商品的弹性收缩系数。如果flex项的大小大于flex容器,则项会根据flex-shrink缩小以适合其大小。

因此,我们知道如何填充更大的容器。但是如果容器太小怎么办?仅在这次使用flex-shrink属性时才应用相同的原理。请注意,为此使用0可能会导致flex元素溢出其容器。

答案 2 :(得分:0)

第一个值是柔韧性增长,实际上是特定柔韧性项目相对于其他柔韧性项目的大小,因此,如果将其值设为2,则宽度将是其余柔韧性项目的宽度的两倍。也就是说,将标准flex项目的宽度设为20px的flex增长为2会使该项目的尺寸为40px。弹性收缩的第二个值则相反。 第三个flex-basis表示该flex项目不会超出该大小,而更像是在flex box上下文中的最小宽度。 #欢呼声