详解flex:1什么意思


Posted in HTML / CSS onJuly 23, 2022

简单的来说一下在别人问你这个问题的时候怎么来回答它

前端新人,如有错误求大佬指出~求教?

情景复现

大佬提问:“你知道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详解内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS3等相关属性制作分页导航实现代码
Dec 24 HTML / CSS
纯CSS3实现的阴影效果
Dec 24 HTML / CSS
CSS3中box-shadow的用法介绍
Jul 15 HTML / CSS
HTML5-WebSocket实现聊天室示例
Dec 15 HTML / CSS
Html5如何唤起百度地图App的方法
Jan 27 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
Mar 25 HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
Apr 24 HTML / CSS
html5实现的便签特效(实战分享)
Nov 29 HTML / CSS
Canvas绘制浮动球效果的示例
Dec 29 HTML / CSS
html5调用app分享功能示例(WebViewJavascriptBridge)
Mar 21 HTML / CSS
HTML5中的websocket实现直播功能
May 21 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
May 05 HTML / CSS
CSS子盒子水平和垂直居中的五种方法
Jul 23 #HTML / CSS
如何用H5实现好玩的2048小游戏
Jul 23 #HTML / CSS
css让页脚保持在底部位置的四种方案
Jul 23 #HTML / CSS
浅谈为什么我的 z-index 又不生效了
Jul 15 #HTML / CSS
纯CSS实现一个简单步骤条的示例代码
Jul 15 #HTML / CSS
CSS中使用grid布局实现一套模板多种布局
Jul 15 #HTML / CSS
如何解决flex文本溢出问题小结
Jul 15 #HTML / CSS
You might like
php array_filter除去数组中的空字符元素
2020/06/21 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
基于zepto.js实现登录界面
2017/10/09 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
python对数组进行反转的方法
2015/05/20 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
wxPython实现整点报时
2019/11/18 Python
jupyter notebook实现显示行号
2020/04/13 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
人力资源作业细则
2014/03/03 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
完美的中文自荐信
2014/05/24 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA
解决WINDOWS电脑开机后桌面没有任何图标
2022/04/09 数码科技
Python+DeOldify实现老照片上色功能
2022/06/21 Python