详解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 相关文章推荐
纯CSS实现预加载动画效果
Sep 06 HTML / CSS
CSS3制作文字半透明倒影效果的两种实现方式
Aug 08 HTML / CSS
css3中背景尺寸background-size详解
Sep 02 HTML / CSS
html5+css3气泡组件的实现
Nov 21 HTML / CSS
利用css3径向渐变做一张优惠券的示例
Mar 22 HTML / CSS
css3实现椭圆轨迹旋转的示例代码
Oct 29 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
Nov 10 HTML / CSS
HTML5网页音乐播放器的示例代码
Nov 09 HTML / CSS
利用html5 file api读取本地文件示例(如图片、PDF等)
Mar 07 HTML / CSS
html5 canvas fillRect坐标和大小的问题解决方法
Mar 26 HTML / CSS
解决HTML5中滚动到底部的事件问题
Aug 22 HTML / CSS
CSS实现漂亮的时钟动画效果的实例代码
Mar 30 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
phpcms中的评论样式修改方法
2016/10/21 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
python引用DLL文件的方法
2015/05/11 Python
python绘制简单折线图代码示例
2017/12/19 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
便捷提取python导入包的属性方法
2018/10/15 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
外贸业务员求职自荐信分享
2013/09/21 职场文书
教师演讲稿范文
2014/01/08 职场文书
社区消防工作实施方案
2014/03/21 职场文书
文秘求职信范文
2014/04/10 职场文书
四风查摆剖析材料
2014/10/10 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
python实现简单的井字棋
2021/05/26 Python
Java实现房屋出租系统详解
2021/10/05 Java/Android