前端学习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#
全部评论

相关推荐

查看20道真题和解析
点赞 评论 收藏
分享
A面 33min一、项目与实习经历自我介绍实习相关问题七八个二、前端基础与编程能力forEach 循环中能否使用 break?如果不能,如何提前退出?在 forEach 循环中使用 await,循环是否会等待异步操作?对于大数据集(如10万条),哪种循环方式性能最优?为什么?for 循环和 map 循环有什么区别?1 + "1" - 1 的输出结果是什么?是否使用过 TypeScript?与 JavaScript 的主要区别是什么?TypeScript 有哪些面向对象的特性?三、计算机网络TCP 为什么需要三次握手?如果第三次握手的 ACK 丢失,如何补偿?具体重传机制是什么?四、手撕(只说了思路,没真写代码)在一个万级乱序整数数组中,如何高效找到中位数?如何在不使用额外存储空间的情况下,将英文句子倒序(单词顺序倒序,单词本身不倒)?在一个1到N的乱序数组中,N未知,有重复和缺失的数字,如何找出所有缺失数字?要求时间 O(n),空间 O(1)。五、个人与岗位匹配你是什么时候开始接触前端的?为什么选择前端方向?哪些方面吸引你?你认为自己哪些特质适合前端岗位?忘记反问base和部门就跑了😅因为沉迷丝之歌一直没准备秋招,本来不打算参加携程线下面试,但是hr强烈推荐线下,线下通过率会高一些,并且优先发线下offer,剩余hc再线上,所以还是来了,只仓促背了一天半八股,基本没怎么刷题,想被狠狠挂掉督促自己学习()秋招首战,第一次参加线下面试,因为基本没怎么准备,抱着完蛋了来都来了要吃回本的心情,很松弛地爽爽吃,轻松上阵。面试官很和善,其实很多八股都没回答上来,滑跪很快,放线上面试估计要完蛋,线下还是很善良地过了。面试流程如图1,由于牛客活动,所以B面另起一篇看首页
发面经攒人品
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务