css3 flex屬性flex-grow矾缓、flex-shrink怀酷、flex-basis學習筆記

最近在研究css3的flex。遇到的flex:1;這一塊嗜闻,很是很糾結(jié)蜕依,flex-grow、flex-shrink、flex-basis始終搞不清样眠,最經(jīng)搜集了大量的介紹友瘤,應該能算是明白了。
網(wǎng)上大部分解釋是

flex-grow 是擴展比率
flex-shrink 是收縮比率
flex-basis 伸縮基準值

假設flex盒子父級寬度固定為800px檐束;
Flex-grow辫秧、Flex-shrink、Flex-basis 是Flex屬性的分寫模式厢塘;

<pre><code>
.box {
flex: 4 3 100px;
}
</code></pre>
等于
<pre><code>
.box {
flex-grow: 4;
flex-shrink: 3;
flex-basis: 100px;
}
</pre></code>
看以下例子
<pre><code>
.flex-parent {
width: 800px;
}
</pre></code>
第一種情況
flex-parent 是父級茶没,而且他的寬度是固定為800px,不會改變晚碾;
開始設置子級flex屬性抓半;
<pre><code>
.flex-son:nth-child(1){
flex: 3 1 200px;
}
.flex-son:nth-child(2){
flex: 2 2 300px;
}
.flex-son:nth-child(3){
flex: 1 3 500px;
}
</pre></code>
flex-basis總和加起來為1000px; 那么 1000px > 800px (父級的寬度)格嘁;子元素勢必要壓縮笛求;溢出了200px;
son1 = (flex-shrink) * flex-basis糕簿;
son2 = (flex-shrink) * flex-basis探入;
…..
sonN = (flex-shrink) * flex-basis;
如果flex-basis的總和加起來大于父級寬度懂诗,子級被壓縮蜂嗽,最后的選擇是flex-shrink來進行壓縮計算
加權(quán)值 = son1 + son2 + …. + sonN;
那么壓縮后的計算公式就是
壓縮后寬度 w = (子元素flex-basis值 * (flex-shrink)/加權(quán)值) * 溢出值
所以最后的加權(quán)值是
1200 + 2300 + 3*500 = 2300px
son1的擴展量:(200 * 1/ 2300) * 200殃恒,即約等于17px植旧;
son2的擴展量:(300 * 2/ 2300) * 200,即約等于52px离唐;
son3的擴展量:(500 * 3/ 2300) * 200病附,即約等于130px;
最后son1亥鬓、son2完沪、son3,的實際寬度為:
200 – 16 = 184px嵌戈;
300 – 52 = 248px覆积;
500 – 230 = 370px;

第二種情況
上面的例子已經(jīng)說明熟呛,繼續(xù)看第二個例子技健,同樣上面的例子,我們改下父級寬度為1200px;
flex-basis的總和為 1000px惰拱,小于父級寬度雌贱,將有200px的剩余寬度啊送;
既然有剩余,我們就不要加權(quán)計算欣孤,剩余的寬度將根據(jù)flex-grow馋没,值得總和進行百分比,那么200px就會根據(jù)份數(shù)比來分配剩余的空間降传;
剩余后寬度 w = (子元素flex-grow值 /所有子元素flex-grow的總和) * 剩余值
總分數(shù)為 total = 1 + 2 + 3篷朵;
son1的擴展量:(3/total) * 200,即約等于100px婆排;
son2的擴展量:(2/total) * 200声旺,即約等于67px;
son3的擴展量:(1/total) * 200段只,即約等于33px腮猖;
最后son1、son2赞枕、son3澈缺,的實際寬度為:
200 + 100 = 300px;
300 + 67 = 367px炕婶;
500 + 33 = 533px姐赡;
總結(jié)
所以以上兩種情況下,第二種flex-basis和flex-shrink是不列入計算公式的柠掂;第一種flex-grow是不列入計算公式的
ok项滑,上面的兩種情況總結(jié)完畢,但是很多時候我們的父級是不固定的涯贞,那么怎么辦枪狂,其實很簡單了,對照上面的公式肩狂,前提是已經(jīng)設置了flex-basis值得元素,如果寬度的隨機值小于flex-basis的時候就按第一種計算姥饰,反之第二種傻谁;明白了吧。
但是在實際中列粪,我們有些子元素不想進行比例分配审磁,永遠是固定的,那么flex就必須設置為none岂座;
否則設置的寬度(width)將無效态蒂;
flex: 1, 則其計算值為 flex: 1 1 0%;
flex: auto, 則其計算值為 flex: 1 1 auto费什;
flex: none, 則其計算值為 flex: 0 0 auto钾恢;
根據(jù)上面的公式
flex:1的時候第一種方式其實是無效的,因為加權(quán)值是0,所以只能是第二種方式計算瘩蚪;
flex:none的時候泉懦,兩種都失效,自己元素不參與父級剩余還是溢出的分配疹瘦,flex:none的應用場景還是很多的崩哩;
文檔參考http://css.doyoe.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市言沐,隨后出現(xiàn)的幾起案子邓嘹,更是在濱河造成了極大的恐慌,老刑警劉巖险胰,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汹押,死亡現(xiàn)場離奇詭異,居然都是意外死亡鸯乃,警方通過查閱死者的電腦和手機鲸阻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缨睡,“玉大人鸟悴,你說我怎么就攤上這事〗蹦辏” “怎么了细诸?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長陋守。 經(jīng)常有香客問我震贵,道長,這世上最難降的妖魔是什么水评? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任猩系,我火速辦了婚禮,結(jié)果婚禮上中燥,老公的妹妹穿的比我還像新娘寇甸。我一直安慰自己,他們只是感情好疗涉,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布拿霉。 她就那樣靜靜地躺著,像睡著了一般咱扣。 火紅的嫁衣襯著肌膚如雪绽淘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天闹伪,我揣著相機與錄音沪铭,去河邊找鬼壮池。 笑死,一個胖子當著我的面吹牛伦意,可吹牛的內(nèi)容都是我干的火窒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼驮肉,長吁一口氣:“原來是場噩夢啊……” “哼熏矿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起离钝,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤票编,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后卵渴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體慧域,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年浪读,在試婚紗的時候發(fā)現(xiàn)自己被綠了昔榴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡碘橘,死狀恐怖互订,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情痘拆,我是刑警寧澤仰禽,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站纺蛆,受9級特大地震影響吐葵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜桥氏,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一温峭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧字支,春花似錦凤藏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽月杉。三九已至刃跛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間苛萎,已是汗流浹背桨昙。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工检号, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蛙酪。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓齐苛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親桂塞。 傳聞我的和親對象是個殘疾皇子凹蜂,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容