Flex中寬度計算

flex?有三個屬性值,分別是?flex-grow,?flex-shrink,?flex-basis,默認值是?0 1 auto。 發現網上詳細介紹他們的文章比較少, 今天就詳細說說他們,先一個一個看。

flex-grow

定義項目的放大比例,默認值為0,就算存在剩余空間,也不會放大。單單幾句話肯定不能表達出意思,來看個DEMO。

flex-grow

flex-grow的默認值為0,如果沒有定義該屬性,是不會擁有分配剩余空間的權利的。A, B, C, D, E?的寬度分別是?100, 120, 130, 100, 100,父級的寬度是660,父級寬減去子級的全部寬度,這樣剩余空間就是110。例子中B, C定義了flex-grow,分別是1,2,那剩余空間分成3份,B1份,C2份,比例就是1:2,分配計算出來的值就是B :36.666666666666664, C:73.33333333333333。這個時候剩余空間就被計算出來了,相加后的結果就是B:156.66666666666666,C:203.33333333333331

B的計算公式:120 + (110 / 3) * 1

C的計算公式:?130 + (110 / 3) * 2

flex-shrink

定義項目的縮小比例,默認值為1,注意前提是空間不足的情況下,看例子。

flex-shrink

這里?A, B, C?的寬度分別是155, 200, 50,(注意這里的寬度我是用flex-basis代替的,在這個例子中和width的作用是一樣的)。 父級寬度是300,計算超出的空間就是?-105,這樣超出的?105px?就要被?A, B, C?消化掉,比例是2:1:1

如何消化 ? 首先是每個項目的wdith值乘以flex-shrink值求積,

A:(155 * 2) = 310
B:(200 * 1) = 200
C:(50 * 1) = 50

然后再求和所有項目的乘積。

(310 + 200 + 50) = 560

得到求占比之后還要乘以要騰出的空間。

A:(310 / 560) * 105?=?58.125
B:(200 / 560) * 105?=?37.5
C:(50 / 560) * 105?=?9.375

得到每一項要騰出的空間後然後

A:(155 - 58.125) = 96.875
B:(200 - 37.5) = 162.5
C:(50 - 9.375) = 40.625

好了,這樣就得出計算后的寬度了。

flex-basis

width一樣,他的默認值為auto,把上面幾個例子換成width也是一樣的。當然工作中最好用flex-basis,更符合規范。

總結

如果父級的空間足夠:flex-grow有效,flex-shrink無效。

如果父級的空間不夠:flex-shrink?有效,flex-grow無效。

注意,設為Flex布局以后,子元素的floatclearvertical-align屬性將失效。

轉載于:https://www.cnblogs.com/dehuachenyunfei/p/6527601.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284356.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284356.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284356.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Lucene詳解

一.lucene原理 Lucene 是apache軟件基金會一個開放源代碼的全文檢索引擎工具包,是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎。它不是一個完整的搜索應用程序,而是為你的應用程序提供索引和搜索功能…

.NET 6.0中使用Identity框架實現JWT身份認證與授權

原文作者:Sarathlal Saseendran原文鏈接:https://www.c-sharpcorner.com/article/jwt-authentication-and-authorization-in-net-6-0-with-identity-framework/翻譯:沙漠盡頭的狼(谷歌翻譯加持)介紹微軟于 2021 年 11 …

adb devices 里面有很多 emulator-XXXX的解決方法

2019獨角獸企業重金招聘Python工程師標準>>> adb kill-server 轉載于:https://my.oschina.net/sfshine/blog/700354

MQ(Message Queue)簡介

一、何為MQ? MQ全稱為Message Queue, 消息隊列(MQ)是一種應用程序對應用程序的通信方法。應用程序通過讀寫出入隊列的消息(針對應用程序的數據)來通信,而無需專用連接來鏈接它們。消息傳遞指的是程序之間通…

【GlobalMapper精品教程】015:矢量面圖層的創建及數字化操作

本文講解在Globalmapper中文23.0中創建矢量面狀數據(政區數據),并進行面狀數據采集及編輯的詳細操作流程,數據為配套案例數據包中的data015.rar。 參考閱讀: ArcGIS實驗教程——實驗三:矢量數據采集與編輯(矢量化) 文章目錄 一、認識工具條1. 數字化(創建)工具條2. 選…

Blazor University (39)JavaScript 互操作 —— 更新 document title

原文鏈接:https://blazor-university.com/javascript-interop/calling-javascript-from-dotnet/updating-the-document-title/更新 document title源代碼[1]在創建 Blazor 布局[2]部分中,我們看到了 Blazor 應用程序如何存在于 HTML(或 cshtm…

IIS 日志文件位置

IIS 6 Log files location IIS 6中日志文件的位置%windir%\System32\LogFilesIIS 7 Log files location IIS的日志文件的位置%SystemDrive%\inetpub\logs\LogFiles用戶每打開一次網頁,iis 都會記錄用戶IP、訪問的網頁地址、訪問時間、訪問狀態等信息,這些…

APP測試流程和測試點

1 APP測試基本流程 1.1流程圖 1.2測試周期 測試周期可按項目的開發周期來確定測試時間,一般測試時間為兩三周(即15個工作日),根據項目情況以及版本質量可適當縮短或延長測試時間。正式測試前先向主管確認項目排期。 1.3測試資源 測…

39所強基計劃試點高校已全部公布招生簡章

截至目前(4月8日下午) 39所強基計劃試點高校 已全部公布招生簡章 各高校招生要求是什么? 招生專業有哪些? 什么時候報名? 一起來看 北京大學 招生對象及報名條件 各省(區、市)符合2022年全國普通高等學校招生統…

【ArcGIS錯誤異常100問】之001:License服務無法啟動權威解決辦法

測試環境: 操作系統:Windows10ArcGIS版本:10.X結果:通過測試 文章目錄1. 錯誤提示2. 問題分析3. 解決辦法3.1 關閉Windows Defender3.2 關閉系統防火墻3.3 刪除邁克菲(McAfee)殺毒軟件3.4 在系統服務中啟動…

Appium wait等待的三種方法

1、sleep()方法Thread.sleep(60000)強制等待60s2、隱式等待implicitlyWait()driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);全局等待30s不管元素是否已經加載1) 當使用了隱式等待執行測試的時候,如果WebDriver沒有在DOM中…

ASP.NET Core 技術內幕與項目實戰讀后感

前幾天拿到了楊中科老師的新書《ASP.NET Core 技術內幕與項目實戰》,迫不及待的“兩”口氣讀完了。用一句話來總結,這是一本寫給.NET開發者的非常實用的接地氣的好書,感覺有必要自發為這本書宣傳一波。楊老師在 .NET 開發者社區中的知名度非常…

avalon2學習教程15指令總結

avalon的指令在上一節已經全部介紹完畢,當然有的語焉不詳,如ms-js。本節主要總結我對這方面的思考與探索。 MVVM的成功很大一語分是來自于其指令,或叫綁定。讓操作視圖的功能交由形形式式的指令來代勞。VM,成了一個大管家。它只一…

【ArcGIS錯誤異常100問】之002:Error 000735 簡化容差:值是必需的(簡化線、簡化面工具)

測試環境: 操作系統:windows7ArcGIS版本:10.2結果:通過測試 文章目錄1. 錯誤提示2. 問題分析3. 解決辦法4. 問題驗證1. 錯誤提示 在ArcGIS中使用簡化面或者簡化線工具時,點擊確定會提示Error 000735:簡化容…

mybatis中mysql轉義講解

本文為博主原創,未經允許不得轉載: 在mybatis中寫sql的時候,遇到特殊字符在加載解析的時候,會進行轉義,所以在mybatis中 寫sql語句的時候,遇到特殊字符進行轉義處理。 需要注意的是,轉義的字符為…

用Python執行js文件代碼并獲取返回結果

js代碼(myjs.js): /** Title: This is a file for ……* Author: JackieZheng* Date: 2022-04-12 09:24:13* LastEditTime: 2022-04-12 09:40:55* LastEditors: Please set LastEditors* Description:* FilePath: myjs.js*/function hello(…

.NET桌面開發的一些思考

在22日,我在公眾號上發布了一條短文字,內容如下:其實在.NET開發大軍中,還有一股力量,那就是桌面程序的開發者們。他們很少發聲,可能技術成熟,可能太企業化了,也可能我沒關注到。最近…

【ArcGIS錯誤異常100問】之003:屬性表中文亂碼解決辦法總結

測試環境: 操作系統:windows7ArcGIS版本:10.X、Pro結果:通過測試 文章目錄1. 錯誤提示2. 原因分析3. 解決方法4. 問題驗證1. 錯誤提示 如圖所示,安裝完ArcGIS Pro后,由于計算機系統和應用軟件字符編碼的問…

大型網站架構演化(二)——應用服務和數據服務分離

隨著網站業務的發展,一臺服務器逐漸不能滿足需求:越來越多的用戶訪問導致性能越來越差,越來越多的數據導致存儲空間不足。這時就需要將應用和數據分離。應用和數據分離后整個網站使用三臺服務器:應用服務器、文件服務器和數據庫服…

再不自動化就晚啦!優云教你4步打造基于CentOS的產品鏡像

隨著Linux程序的增多,軟件的安裝過程中經常出現如下問題: 1、硬件配置類似或者相同時,批量安裝系統和軟件,希望實現自動化安裝,減少安裝時間和人為出錯。 2、工程實施人員在不同客戶現場進行系統和軟件安裝(硬件配置不…