详解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 26 HTML / CSS
CSS3教程(2):网页边框半径和网页圆角
Apr 02 HTML / CSS
CSS3 选择器 伪类选择器介绍
Jan 21 HTML / CSS
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
Jan 07 HTML / CSS
CSS3自定义滚动条样式的示例代码
Aug 21 HTML / CSS
html5中 media(播放器)的api使用指南
Dec 26 HTML / CSS
浅析border-radius如何兼容IE
Apr 19 HTML / CSS
Html5 webview元素定位工具的实现
Aug 07 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
Sep 08 HTML / CSS
css animation配合SVG制作能量流动效果
Mar 24 HTML / CSS
position:sticky 粘性定位的几种巧妙应用详解
Apr 24 HTML / CSS
新的CSS 伪类函数 :is() 和 :where()示例详解
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
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
Php Cookie的一个使用注意点
2008/11/08 PHP
PHP中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
javascript实现下雨效果
2017/03/27 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
Python yield与实现方法代码分析
2018/02/06 Python
详解python和matlab的优势与区别
2019/06/28 Python
Python如何调用JS文件中的函数
2019/08/16 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
小学教研工作制度
2014/01/15 职场文书
施工安全生产承诺书
2014/05/23 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
2014年图书室工作总结
2014/12/09 职场文书
青年联谊会致辞
2015/07/31 职场文书
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS