前端学习4 flex:1

flex:1

flex 是 flex-grow, flex-shrink, flex-basis. 三个属性的简写,默认值为 0 1 auto。该属性有两个快捷值:auto(1 1 auto) 和 none(0 0 auto)。建议优先写 flex 属性,而不是写三个分离的属性,因为浏览器会自动计算其相关值。

flex-grow 默认为0, 只能是正整数。即父元素有剩余空间也不放大元素。如果为 1,则把剩余空间的一份加给自己的宽度。

flex-shrink 默认为1,只能是正整数。即父元素空间不足则按比例收缩。如果为 0,则不收缩。

flex-basis 默认为 auto, 即元素本身的大小。这个属性定义了在分配多余空间之前,元素占据的主轴空间,浏览器根据这个属性计算是否有多余空间。可以设置为和 width 和 height 属性一样的值,比如 220px,则元素占据固定空间。

flex: 1 的意思是 flex-grow: 1; flex-shrink: 1; flex-basis: 0%; 意思就是: 元素占据剩余宽度的 1 份,收缩比例为 1,因为 flex-basis 具有最高优先级,元素首次分配宽度(flex-direction: colunm; 则为高度)如果父元素有设置宽度,则为 0%;父元素没有设置宽度,则和 auto效果一致。

flex:1对width的影响

flex对width的影响主要取决于flex-basis。

flex-basis = 0

.item {
  
  flex: 1; /* flex-basis: 0 */
  
  width: 200px;
}

width:200px 不会生效,因为flex-basis的优先级更高

元素会根据 flex 容器剩余空间按比例分配(flex-grow)

显式设置 flex-basis

.item {
  
  flex: 1 1 200px; /* 显式设置 flex-basis */
  
  width: 300px;
}

width:300px 不会生效,因为 flex-basis 优先级高于 width

元素初始尺寸为 200px,然后根据 flex-grow 分配剩余空间

没有设置 flex 简写

.item {
  
  flex-grow: 1;
  
  width: 200px;
}

width:200px 会生效,作为初始尺寸

元素会从 200px 开始,然后根据 flex-grow 分配剩余空间

#前端css#
全部评论

相关推荐

03-27 16:23
学而思_HR
好未来前端实习一面面经1.自我介绍2.看代码说结果,变量提升相关3.浮点数精度问题,通过过先转换为整数如果两个浮点数的长度不相等怎么解决?4.forEach、map、for循环之间的区别是什么?5.看代码说结果,事件循环相关6.场景题:在做tab的切换,一个是已读tab(展示已读列表)一个是未读的tab(展示未读列表),每次点击一个tab的时候都要去发送请求去获取信息,当快速切换按钮的时候会发发生什么问题?7.你之前是做B端这些的吧?主要是做哪些?相对来说你认为做的比较复杂的功能?8.做过哪些性能优化?反问整体下来感觉问的八股还是比较少的吧,大多数都是面试官写代码然后让我说结果,然后再解释为什么这样说,还有就是场景题和项目了。面试官人很好就算一些答不出来还是会去引导回答出来。作者:芝士小堡链接:https://www.nowcoder.com/feed/main/detail/b9a71d03667146ddb552852ad308752d?sourceSSR=users内推码:DSXPprHa内推有26个不同岗位,待遇都比较好,感兴趣的可以使用内推码投递,欢迎随时咨询进度!大家可以在评论区留下姓名缩写及投递岗位,我来查下后台有没有内推成功!内推链接https://app.mokahr.com/m/campus_apply/tal/148080?recommendCode=DSXPprHa&hash=%23%2Fjobs内推码:DSXPprHa#数据库##实习##前端##好未来##面试##内推##学而思内推##好未来面经#
学而思
|
校招
|
26个岗位
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务