首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

flex-grow、flex-shrink、flex-basis详解

flex-grow、flex-shrink、flex-basis这三个属性的作用是:在flex布局中,父元素在不同宽度下,子元素是如何分配父元素的空间的。 其中,这三个属性都是在子元素上设置的。...flex-grow 该属性来设置,当父元素的宽度大于所有子元素的宽度的和时(即父元素会有剩余空间),子元素如何分配父元素的剩余空间。...flex-grow的默认值为0,意思是该元素不索取父元素的剩余空间,如果值大于0,表示索取。值越大,索取的越厉害。 举个例子: 父元素宽400px,有两子元素:A和B。...如果A索取剩余空间:设置flex-grow为1,B不索取。...则最终A的大小为 自身宽度(100px)+ 剩余空间的宽度(100px)= 200px 如果A,B都设索取剩余空间,A设置flex-grow为1,B设置flex-grow为2。

1.5K40

深入理解Flex布局 -- flex-grow & flex-shrink & flex-basis

它其实是一个缩写,等价于flex: 1 1 0,也就是 flex-grow : 1; flex-shrink : 1; flex-basis : 0; flex-grow 表示当有剩余空间的时候,分配给项目的比例...flex-grow(默认值 0) 假设有一个宽度为 800 的容器,里面有 3 个项目,宽度分别是 100,200,300: <div class="...这时候如果我们对左中右分别设置<em>flex-grow</em>为 2,1,1,各个项目的计算逻辑如下: 首先将多余空间 200 除以 4(2 + 1 + 1),等于 50 left = 100 + 2 x 50 =...在这里 flex-basis(默认值 auto) flex-basis指定项目占据主轴的空间,如果不设置,则等于内容本身的空间: 四、总结 本文从问题出发,讲解了Flex布局在实战中的应用,并深入到<em>flex-grow</em>

1.6K20

深入了解 Flex 属性

flex-grow 属性 flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。flex-grow的值只接受一个整数。...在不使用flex-grow的情况下,flex 项目的宽度将默认为其初始宽度。 但是,使用flex-grow: 1时,flex 项目会平均剩余可用的空间。 ?...项目宽度 = (( flex-grow / flex-grow 总个数) * 可用空间)+ 初始项目宽度 多个 flex-grow 值 在前面的示例中,所有flex项目的flex-grow值都相同。...可以用0作为flex-grow的值吗? 当然可以!因为flex-grow属性接受整数值,所以可以使用0,可以防止 flex 项目占用可用空间的一种方式。 ?...flex-grow 不能让 flex 项目相等 有一个常见的误解,使用flex-grow会使项目的宽度相等。这是不正确的,flex-grow的作用是分配可用空间。

1.6K30

css3 Flex布局 学习

3. flex-grow: 定义项目的放大比例 .item { flex-grow: ;} 默认值为 0,即如果存在剩余空间,也不放大 ?...当所有的项目都以 flex-basis 的值进行排列后,仍有剩余空间,那么这时候 flex-grow 就会发挥作用了。 如果所有项目的 flex-grow 属性都为 1,则它们将等分剩余空间。...5. flex: flex-grow, flex-shrink 和 flex-basis的简写 .item{ flex: none | [ <'flex-shrink...,首先一定会换行,换行后,每一行的右端都可能会有剩余空间(最后一行包含的子项可能比前几行少,所以剩余空间可能会更大),这时 flex-grow 会起作用,若当前行所有子项的 flex-grow 都为0,...则剩余空间保留,若当前行存在一个子项的 flex-grow 不为0,则剩余空间会被 flex-grow 不为0的子项占据 当 flex-wrap 为 nowrap,且子项宽度和不及父容器宽度时,flex-grow

1.5K40

flexbox布局指南

(收缩因子) P.S.如果要让元素不可伸缩,让拉伸因子和收缩因子都为0即可(flex-grow: 0; flex-shrink: 0,或者简写属性flex: none等价于flex: 0 0 auto)...: #ccc">20px 10px <span style="width: 20px; flex-basis: auto; <em>flex-grow</em>: 1;...拉伸因子,内容不足以占满伸缩行时依据<em>flex-grow</em>值确定各项将额外获得空间的比例: 拉伸比例 = 当前项的<em>flex-grow</em> / 当前行所有项的<em>flex-grow</em>之和 例如3列等比布局: <div...的话,计算该项的<em>flex-grow</em>值除以该行所有未确定最终目标主尺寸的伸缩项的<em>flex-grow</em>值之和,得到一个比例,目标主尺寸就是基础尺寸加上剩余可用空间中该比例对应的那部分 伸缩因子是flex-shrink

99240

CSS中Flex布局的可伸缩性(Flexibility)

flex 是 flex-grow、flex-shrink、flex-basis的缩写 .item { flex: none | [ ] } 取值为 ,用来指定项目的扩展比率;若在flex缩写省略了此属性值,则flex-grow的指定值是 1;...flex 的常见值 flex的默认值:由于 flex-grow、flex-shrink、flex-basis三个属性值在不设置的情况下默认值分别为 0、1、auto,所以flex的默认值为:flex:0...flex:0 auto就相当于flex:0 1 auto(也就是与flex取默认值一样); flex: initial:与flex:0 1 auto相同; flex: auto: 若在flex的缩写中省略了flex-grow...flex: 1; /*相当于flex:1 1 0%;*/ } /*以父容器的宽度为基数计算,元素完全可伸缩*/ 当 flex 取值为一个长度或百分比,则视为 flex-basis 值,flex-grow

1.4K30

CSS6:flex布局

伸缩与尺寸 而影响大小和伸缩与尺寸的属性flex-grow、flex-shrink、flex-basis这三个属性比较难理解,可以看30分钟彻底弄懂flex布局和深入理解flex布局的flex-grow...flex-grow 默认为flex-grow:0,即,不扩大。原来是多大就是多大(flex-basic或者width、height的长度) 然后按照扩大因子按权分配。...例如有50px没有分配,两个子元素flex-grow:分别为flex-grow:3和flex-grow:2,那么第一个元素就分配30px,第二个元素分配20px。...如果第一个元素设置flex-grow为1,另一个没有设置,那么多出来的全部的大小都会分配给第一个元素。 详细还是看30分钟彻底弄懂flex布局讲的非常明白。...flex flex = flex-grow + flex-shrink + flex-basis 一些简写 flex: 1 = flex: 1 1 0%// flex: 2 = flex: 2 1 0%

77020
领券