對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.pswp.cn/news/277780.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277780.shtml
英文地址,請注明出處:http://en.pswp.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…