详解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教程:新增加的结构伪类
Apr 02 HTML / CSS
CSS3 @media的基本用法总结
Sep 10 HTML / CSS
HTML5里autofocus自动聚焦属性使用介绍
Jun 22 HTML / CSS
HTML5如何实现元素拖拽
Mar 11 HTML / CSS
HTML5 embed标签定义和用法详解
May 09 HTML / CSS
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
Jun 16 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
Sep 21 HTML / CSS
如何用canvas实现在线签名的示例代码
Jul 10 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
Jan 03 HTML / CSS
AmazeUI 导航条的实现示例
Aug 14 HTML / CSS
CSS精灵图的原理与使用方法介绍
Mar 17 HTML / CSS
el-form每行显示两列底部按钮居中效果的实现
Aug 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
虫族 Zerg 历史背景
2020/03/14 星际争霸
php adodb介绍
2009/03/19 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
详解PHP归并排序的实现
2016/10/18 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
JavaScript中双向数据绑定详解
2017/05/03 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
python利用lxml读写xml格式的文件
2017/08/10 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
10条PHP编程习惯
2014/05/26 面试题
员工试用期工作总结
2019/06/20 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python