详解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 :nth-child()伪类选择器实现奇偶行显示不同样式
Nov 05 HTML / CSS
CSS3区域模块region相关编写示例
Aug 28 HTML / CSS
css3实现画半圆弧线的示例代码
Nov 06 HTML / CSS
CSS3动画和HTML5新特性详解
Aug 31 HTML / CSS
CSS3制作皮卡丘动画壁纸的示例
Nov 02 HTML / CSS
html5 sessionStorage会话存储_动力节点Java学院整理
Jul 06 HTML / CSS
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
Jan 06 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
Jun 09 HTML / CSS
html5绘制时钟动画
Dec 15 HTML / CSS
浅析HTML5中的download属性使用
Mar 13 HTML / CSS
详解HTML5 Canvas标签及基本使用
Jan 10 HTML / CSS
AmazeUI 网格的实现示例
Aug 13 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中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
python3.5仿微软计算器程序
2020/03/30 Python
python版本单链表实现代码
2018/09/28 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
python删除某个目录文件夹的方法
2020/05/26 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
JSF界面控制层技术
2013/06/17 面试题
试用期转正鉴定评语
2014/01/27 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
党员转正大会主持词
2015/07/02 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
小学毕业教师寄语
2019/06/21 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python
python基础之类属性和实例属性
2021/10/24 Python
全新239军机修复记
2022/04/05 无线电
2022漫威和DC电影上映作品
2022/04/05 欧美动漫