flex布局中的flex-grow,flex-shrink,flex-basis

接上篇文章,

1. flex-grow属性

flex-grow定义剩余空间的分成。默认为0,即如果存在剩余空间,也不放大。

如何理解这里的剩余空间呢,用例子来说明吧。

默认的情况(flex-grow:0)在浏览器下是

将flex-grow:1 时是:

此时我们将例子变一下

浏览器就是

通过上面的动手,我自己总结出

  • flex-grow会覆盖你设置的width属性,使之失效
  • 当三个div同时设置相同的非 0 正整数时,即为三个div平分剩余空间.
    • 剩余空间=浏览器宽度-item内容宽度之和
    • flex-grow设置为负值时等于0
  • 当三个div flex-grow数值不同,则按比例分配剩余空间.当有没有设置felx-grow,且有width属性的话,先减去其占有的宽度;
    • 这里有一个误区就是认为flex-grow:1,flex-grow:2 的宽度时1:2,错! 是分配的剩余空间1:2

常用:在布局的时候,想让一个item填满整行,其余占据其内容宽度就可以了 比如这样

是不是就不需要使用 float啦,是不是不用清除讨厌的浮动啦.嘻嘻

2. flex-shrink

flex-shrink属性定义了项目的缩小比例。flex-shrink的默认值为1,flex-shrink的值为0时,不缩放。

flex-grow是对剩余空间的分配,而flex-shrink就是对空间不足时怎么安排的设置.

同样的当空间不足,比如三个div宽度都为200px 父盒子只有400px,那么默认是平均分配这个不足的空间,每个div占据200px(本身)-200px/3(缺的200px平分)=133.333px 基本和flex-grow一致啦.

但是呢有一点不同的就是 在flex-shrink是默认缩小,当然也不会覆盖你设置的width,所以设置了一个item为固定宽度时,不要想着他不会shrink喔. 和felx-grow差不多啦

3. flex-basis

flex-basis属性定义了项目占据的主轴空间。浏览器根据这个属性,计算主轴多余空间或不足空间的大小。它的默认值为auto,即项目的本来大小。

感觉上基本和width差不多都是指定item的宽度啊.

然后就是

4. flex

flex是上述三种一起的简写方式. 顺序对应,felx-grow flex-shrink flex-basis 默认flex:0 1 auto; 有两个个特殊值.

flex:none;即为flex:0 0 auto
flex:auto;即为 flex:1 1 auto
然后flex为一个正整数时
例如flex:1 即为flex:1 1 0%;
flex为一个长度1px or 百分号1%
例如:flex:0% 即为flex:1 1 %0

我们通常使用flex:1 来使得一个元素,有剩余空间时他扩张,空间过小时他先缩小

效果:

挺方便的.

flex布局_flex布局的 flex(felx-grow、flex-shrink、flex-basis)详解相关推荐

  1. flex 平铺布局_flex布局及各种布局的总结

    Flexbox display: flex; 如果也想设置内联元素为弹性盒子,可以使用display:inline-flex; 实现三种其他布局难以达到的效果: 在父内容里面垂直居中一个块内容. 使容 ...

  2. flex布局_flex 布局概述

    flex 布局概述 1. flex 是什么 flex 是 Flexible Box 的缩写,意为弹性布局 flex 2009 年就已出现,浏览器兼容性很好 2. flex 解决了什么问题 块级元素的垂 ...

  3. Web前端学习笔记09:移动web开发流式布局_flex布局

    文章目录 移动web开发流式布局 1.0 移动端基础 1.1浏览器现状 1.2 手机屏幕的现状 1.3移动端调试方法 2.0 视口 2.1 布局视口 layout viewport 2.3理想视口 i ...

  4. 通过draggable实现布局_营销推广引流之百度霸屏内容详解 如何通过百度霸屏布局实现立体打法!...

    本篇文章主要讲一讲如何通过百度霸屏布局实现立体打法! 百度霸屏的内容详解 百度霸屏个人好做吗 营销推广引流之百度霸屏? 百度霸屏简单的讲就是当用户从百度搜索某个和你业务相关的关键词,如果页的位置可以出 ...

  5. 学习笔记-Flutter 布局(四)- Baseline、FractionallySizedBox、IntrinsicHeight、IntrinsicWidth详解...

    Flutter 布局(四)- Baseline.FractionallySizedBox.IntrinsicHeight.IntrinsicWidth详解 本文主要介绍Flutter布局中的Basel ...

  6. flex布局_Flex布局,真香

    作者: EcbJS https://blog.csdn.net/EcbJS/article/details/106466757?utm_source=app 1.基本原理 Flex 英文意思为,弯曲, ...

  7. flex 平铺布局_Flex 布局语法教程

    网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 ...

  8. flex 平铺布局_Flex 布局教程

    网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...

  9. Web前端学习笔记10:移动web开发流式布局_flex布局

    文章目录 移动web开发之rem布局 1 rem基础 1.1 rem单位 2 媒体查询 2.1 什么是媒体查询 2.2 媒体查询语法规范 3 less 基础 3.1 维护css弊端 3.2 Less ...

最新文章

  1. 从0到1 html5 canvas,Html5 Canvas学习之路(五)
  2. LeetCode实战:逆波兰表达式求值
  3. AI如何在安防行业更加深入?可从超高清视频监控切入
  4. CSS Hack-清除浮动的最简单写法V2010-08
  5. SpringBoot Mybatis解决使用PageHelper一对多分页问题
  6. Fastjson的基本使用方法大全
  7. 2021湖南高考艺考成绩查询,2021届湖南艺考生联考成绩查询时间安排
  8. idea 2020版的Default Setting
  9. jsp中%@ % 与% % 与%! %
  10. Java输入年度和月份判断有多少天
  11. Linux之基本正则表达式(grep)
  12. 项目优化到一半还是崩了,新同事换了一套调优方案,全体颤抖。。。
  13. Uva 524 相邻素数全排列
  14. STM32工作笔记0036---C语言复习--寄存器地址名称映射
  15. 【开发问题记录①】关于滑动CollectionView时ContentSize变化的问题
  16. Wolfram Mathematica 13 for Mac(功能强大的科学计算软件)
  17. 调音台docker教程_Docker菜鸟教程 - Docker入门教程 - Docker基础教程 - 动力节点
  18. poi excel 隐藏行
  19. BootStrap Table:表格参数
  20. php教程--案例4(判断闰年)

热门文章

  1. git 怎么查看合并过来哪些代码_git整理纷乱的历史合并记录
  2. mac mysql 默认字符集_MacOS中Mysql设置默认字符集
  3. ruby 将字符串转为数组_Ruby程序将数组打印为字符串
  4. 使用类的银行管理系统的C ++程序
  5. 第 6-4 课:MyBatis 核心和面试题(上)
  6. 字符串操作的12个小技巧!
  7. 答读者问:学历不高,要如何破局?
  8. 【逆强化学习-2】最大熵学习(Maximum Entropy Learning)
  9. 【python】获取PC机公网IP并发送至邮箱
  10. SpringBoot实现国际化