详解flex:1什么意思
发布时间:2022-07-22 17:16:14 作者:阳庚 我要评论
今天在做项目的时候遇到一个关于布局的问题, 就是 flex: 1,那么flex:1是什么意思,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
简单的来说一下在别人问你这个问题的时候怎么来回答它
前端新人,如有错误求大佬指出~求教💝
情景复现
大佬提问:“你知道flex: 1;的更深层次的内容吗?”
我的回答:
- flex:1实际代表的是三个属性的简写
- flex-grow是用来增大盒子的,比如,当父盒子的宽度大于子盒子的宽度,父盒子的剩余空间可以利用flex-grow来设置子盒子增大的占比
- flex-shrink用来设置子盒子超过父盒子的宽度后,超出部分进行缩小的取值比例
- flex-basis是用来设置盒子的基准宽度,并且basis和width同时存在basis会把width干掉
所以flex:1;的逻辑就是用flex-basis把width干掉,然后再用flex-grow和flex-shrink增大的增大缩小的缩小,达成最终的效果。
flex-grow:1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .box { width: 500px; height: 100px; background-color: hotpink; display: flex; } .box div { width: 100px; } .box div:nth-child(1) { flex-grow: 1; } .box div:nth-child(2) { flex-grow: 3; } .box div:nth-child(3) { flex-grow: 1; } </style> </head> <body> <div class="box"> <div>1</div> <div>2</div> <div>3</div> </div> </body> </html>
父盒子剩余空间的200
- 第一个盒子扩大1/5,100+40 = 140
- 第二个盒子扩大3/5,100+120=220
- 第三个盒子扩大1/5,100+40= 140
flex-shrink:1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .box { width: 500px; height: 100px; background-color: hotpink; display: flex; } .box div { width: 200px; } .box div:nth-child(1) { flex-shrink: 1; } .box div:nth-child(2) { flex-shrink: 2; } .box div:nth-child(3) { flex-shrink: 1; } </style> </head> <body> <div class="box"> <div>1</div> <div>2</div> <div>3</div> </div> </body> </html>
父盒子的宽度为500,子盒子的宽度为600,超出100,超出的100,如何进行比例缩放
第一个盒子:1/4 * 100 = 25 最终第一个盒子200-25=175
第二个盒子:2/4 * 100 = 50 最终第二个盒子200-50 = 150
第三个盒子:1/4 * 100 = 25 最终第一个盒子200-25=175
flex-basis:0%
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .box { width: 500px; height: 100px; background-color: hotpink; display: flex; } .box div { width: 100px; } .box div:nth-child(1) { flex-basis: 50px; } .box div:nth-child(2) { flex-basis: 100px; } .box div:nth-child(3) { flex-basis: 50px; } </style> </head> <body> <div class="box"> <div>1</div> <div>2</div> <div>3</div> </div> </body> </html>
这样width的宽度就已经被flex-basis:0%干掉了
到此这篇关于详解flex:1什么意思的文章就介绍到这了,更多相关flex:1详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
相关文章
- 本文主要介绍了如何解决flex文本溢出问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-07-11
- 本文给大家分享flex 上下文中神奇的自动 margin问题,代码中通过使用 margin auto 水平垂直居中元素,文中给大家提供完整的代码,喜欢的朋友跟随小编一起学习下吧2021-05-20
- 这篇文章主要介绍了css flex布局超长自动换行的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起2021-03-15
- 这篇文章主要介绍了CSS中flex和inline-flex的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学2020-08-31
- Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。这篇文章给大家介绍flex布局语法的相关知识,感兴趣的朋友跟随小编一起看看吧2020-08-26
- 这篇文章主要介绍了flex弹性盒布局最后一行左对齐的实现思路,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-05-08
- flex布局又称为弹性布局,任何一个容器都可以指定为flex布局,这篇文章主要介绍了CSS中的flex布局,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参2020-03-19
最新评论