对flex-grow和flex-shrink的深入理解

flex弹性布局,如果子元素宽度之和大于或者小于父元素宽度,空间就会存在剩余和不够,flex默认不换行,除非设置flex-wrap,那么这种情况下,有两个重要的属性,flex-grow和flex-shrink.

flex-grow默认值为0,用于子元素的宽度之和小于父元素的宽度时分配剩余空间,假如父元素宽度为1000,三个子元素,div1宽度200,div2宽度300,div3宽度300;三个子元素都不设置flex-grow,那么浏览器默认不自动分配剩余空间,剩余空间超出;假如给div1设置flex-grow:1,那么剩余1000-200-300-300=200px全部分配给div1;其他的子元素div2和div3不参与分配,即不设置此属性就不参与分配。

所以如果要参与分配,就要给子元素添加flex-grow属性。如果按照1:1:1,那么剩余空间就分成3等份,每个子元素分1/3,也可以设置2:2:2或者3:3:3,,但是结果和1:1:1是一样的,都是平均分配,没有意义。如果按照2:3:1,那么剩余空间分成6等份,每个子元素按照2/6,3/6,1/6去分配。

flex-shrink和flex-grow相反,默认值为1,子元素宽度之和超出父元素宽度,那么每个子元素就要按比例缩小以适应父元素。这时候给子元素设置flex-grow不起作用。即使不给子元素设置flex-shrink,浏览器也会根据子元素在子元素宽度之和的占有比例去缩小每个子元素,假如

父元素宽度600,div1宽度200,div2宽度300,div3宽度300,超出父元素200+300+300-600=200,这200在默认情况下浏览器会按比例给每个子元素均分减少,默认比例怎么算呢?先算出每个div占所有div宽度之和多少,上面三个div之和为800,那么三个div所占比例为:

div1:200/800=0.25

div2:300/800=0.375

div3:300/800=0.375

那么超出的200就按照上面这个比例去分配,所有div1宽度要减少200*0.25=50,div2减少200*0.375=75,div3减少200*0.375=75;所以即使不给子元素添加flex-shrink,浏览器最后会把三个子元素宽度缩小到150,225,225;如果想自定义减小某个子元素宽度,就要给相应的div设置flex-shrink, 其他不缩小的设置flex-shrink:0;

 

转载于:https://www.cnblogs.com/5-clay/p/10826801.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拿下京东榜单第五首战告捷,看联想手机如何上演王者归来

618对于手机行业来说是一个非常重要的日子,京东618上销量的高低在某种程度上就代表了该手机品牌在国内市场的影响力,以及在行业中所处的位置。因此,今年的618各大手机品牌卯足了劲在京东平台上展开较量。荣耀、小米、VIVO、OPPO等手机品牌相继…

Mac OS使用技巧之一:查看Finder中的.bash_profile等系统隐藏文件

作为一个程序员,经常要配置变量,可能要更改hosts文件,或者你闲着没事儿寻找homebrew给你安装的东西在什么地方。Mac OS的内核是Unix,Linux/Unix系统出于系统安全和用户安全的考虑,会把一些与系统相关的文件隐藏&#x…

java.lang.NumberFormatException: For input string: “name”

背景&#xff1a;action中查询出list数据需要在前台进行显示&#xff0c;但根据主键在数据库中查询出的数据list中含有熟悉alist属性为配置表&#xff0c;且支持用户多选&#xff0c;前端通过el表达式显示 前台界面为&#xff1a;<c:forEach items"${list}" var&q…

win8下cocos2dx3.2移植android平台及代码打包APK

cocos2dx程序不能只在VS2012下运行&#xff0c;迟早是要搬运到Android和IOS上的。Windows下移植IOS平台先搁下不说比较困难&#xff0c;而且只有越狱的苹果机才可以运行&#xff0c;而且毕竟IOS高端、小众。这里主要讲一下移植Android&#xff0c;windows下cocos2dx打包成APK和…

【转】用Fiddler做抓包分析详解

1.为什么是Fiddler? 抓包工具有很多&#xff0c;小到最常用的web调试工具firebug&#xff0c;达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下&#xff1a; a.Firebug虽然可以抓包&#xff0c;但是对于分析http请求的详细信息&#xff0c;不够强大。模拟http…

读《活着》----余华

这本书所处时代背景尽管与我生活的时代背景不同&#xff0c;但是我仍是被人物的生活所打动。这本书为我们描述了一个拥有一百亩的阔少爷徐福贵因为赌而输掉全部家产&#xff0c;到经历将自己的父亲&#xff0c;母亲&#xff0c;儿子&#xff0c;女儿&#xff0c;女媳&#xff0…

常用数据库连接和diriver以及默认端口

sqlserver默认端口号为&#xff1a;1433 URL:"jdbc:microsoft:sqlserver://localhost:1433;DatabaseNamedbname" DRIVERNAME:"com.microsoft.jdbc.sqlserver.SQLServerDriver"; mysql 默认端口号为&#xff1a;3306 URL:jdbc:mysql://localhost:3306/…

Mac下cocos2dx3.2移植android平台详细教程

本文是cocos2dx移植android的第二篇教程&#xff0c;笔者深深感觉&#xff0c;cocos2dx移植android平台是永远的痛啊。。。下面讲一下笔者花费一个周研究的Mac OS下的cocos2dx3.2android配置首先要准备的东西&#xff08;1&#xff09;下载cocos2dx3.2 http://www.cocos2d-x.o…

robotframework(12)修改用户密码(从数据库查询短信验证码)

一、testcase&#xff1a;修改用户密码需要6个参数&#xff08;短信验证码、设置的新密码、用户已登录的userid及用户唯一标识、接口校验码、被修改的手机号&#xff09;&#xff0c;故先准备这些参数 二、用户登录请求&#xff0c;&#xff08;获取userid、用户唯一标识&#…

Mac OS使用技巧之二:修改变量Path解决android: command not found

前一阵子&#xff0c;一直在搞Mac OS和win8下cocos2dx移植android平台的方法。一步步从无到有的慢慢摸索出来。最近发现了一个小问题&#xff0c;有关环境变量配置的写下来分享给大家。就是我们在windows8下查看已有android SDK的版本&#xff0c;需要在CMD里面输入&#xff1a…

Jenkins架构

一. Master 和slave.下图阐述了master-slave交互的架构&#xff1a;在上面这个分布式的构建环境中&#xff0c;Jenkins master主要负责如下&#xff1a;接收构建触发&#xff08;比如&#xff0c;一个提交到GitHub后&#xff09;发送通知&#xff08;比如&#xff0c;在构建失败…

【linux】linux命令如何查看文件、文件夹的属性,包括大小、修改时间、谁修改的...

【linux命令如何查看文件、文件夹的属性&#xff0c;包括大小、修改时间、谁修改的】1、查看文件大小&#xff1a;#du -sh filename2、查看文件,文件夹属性&#xff1a;#ls -l filename#ls -ld foldername3、查看文件的三个时间 atime ,ctime, mtime3.1、 mtime(modification t…

Mac OS使用技巧之三:发射无线网络信号的方法

许多人知道在windows下可以直接借助各种辅助软件来直接发射wifi信号&#xff0c;比如360wifi&#xff0c;猎豹wifi。或者可以直接在命令行里面设置。许多人却不知道Mac系统也有方便快捷发射无线信号的功能。下面讲一下利用Mac OS发射无线网络信号的方法。前提&#xff1a;你的电…

关于基本工作素养在职场当中的重要性

各位小伙伴&#xff1a; 今天博主就和大家分享一下&#xff0c;一个优秀的工作素养在职场中的重要性&#xff0c;中央军军容军纪整洁&#xff0c;队伍有条有理&#xff0c;为何地方军阀&#xff0c;层次不穷&#xff0c;恶习满贯。其核心根本就是职业素养低。 大家都是干技术的…

纪实:对CSDN博客系统的一些质疑

我是一个对编程充满热情的在校大学生&#xff0c;本来我是怀着满腔热情来到CSDN写博客&#xff0c;记录和分享自己的学习经历。却被这糟糕的博客系统一次次的泼冷水。写这篇博客确实是因为心中十分不甘和特别生气&#xff0c;所以我决定要把自己的遭遇写出来&#xff0c;我自己…

php框架之laravel

常见问题: 1. 访问网站500错误 这是因为laravel的缓存路径没有找到 laravel缓存文件路径是在 config/cache.php中设置&#xff0c;默认存在storage文件夹中 解决:需要保证storage/framework下面创建 sessions&#xff0c; views, cache 文件夹并确保可写权限 转载于:https://ww…

MySQL的命令合集

2019独角兽企业重金招聘Python工程师标准>>> MySQL客户端操作 $db$是数据库名称$table$是数据表名称$field$是数据表里的字段名称有些语句最后加上**/G**可以使结果更美观数据库相关 创建数据库,修改数据库 create database $db$; 使用默认设置create database $db$…

Mac OS使用技巧之四:修改打开不同格式视频的默认播放器

这里说一下视频播放的一些问题。大家知道Mac OS中有自带的一款播放器&#xff0c;叫做Quicktime Player。这已经是一款很牛X的软件了&#xff0c;但他的定位并不是单纯的视频播放软件&#xff0c;而是数字媒体制作平台&#xff0c;可以用于视频格式的转换&#xff0c;视频的录制…

Sql—表格的建立,删除,数据的建立与删除-总结篇

一&#xff0c;Sql—表格的建立&#xff0c;删除&#xff0c;数据的建立与删除 Sql表格的建立公式 If exists (select * from sysobjects where <表名> Drop table <表名> Create table <表名> (<列名1> <数据类型> <约束类型> <是否为…

爬取汽车之家新闻

爬取汽车之家新闻 伪造浏览器向某个地址发送Http请求&#xff0c;获取返回的字符串 response requests.get(url 地址)response.contentresponse.encoding apparent_encodingresponse.textbs4&#xff0c;解析HTML格式的字符串 soup BeautifulSoup(<html>...</html…