简单的来说一下在别人问你这个问题的时候怎么来回答它
前端新人,如有错误求大佬指出~求教?
大佬提问:“你知道flex: 1;的更深层次的内容吗?”
我的回答:
所以flex:1;的逻辑就是用flex-basis把width干掉,然后再用flex-grow和flex-shrink增大的增大缩小的缩小,达成最终的效果。
<!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
<!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
<!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什么意思没有解决您的问题,您还可以在CSS栏目中查看更多相关内容。