flex grow遇到的問題

2022-07-26 20:30:13 字數 781 閱讀 5809

在進行flex布局的時候,會經常遇到flex-grow無效這個問題

深入了解了一下,容器內item的flex-grow屬性是按照父元素剩餘空間來分配的。

flex-grow重點說明落在剩餘這兩個字上,父元素剩餘的空間,那什麼算父元素剩餘空間呢,簡單的理解就是(父元素的寬度-子元素總和的寬度),這裡有兩種情況:

1、子元素沒有設定高度:

那麼整個父元素的width就是剩餘寬度,這個時候可以正常使用flex-grow.

2、子元素設定了寬度:

如果子元素有寬度,那麼這個時候flex-grow的作用就是把剩餘空間=(父元素寬度-子元素總和寬度)按照flex-grow的數值分配給每乙個子元素,這個時候flex-grow的作用就像是實實在在的width一樣,給子元素增加寬度,

在這種情況下的得到的效果就是乙個無法改變的分配好的寬度,即使你子元素a的內容超出了分配好的寬度,也不會影響寬度分配情況,你只能用overflow來更好地美觀一下啊,而這個就是我們希望的到的分配效果,**如下:

.a div

給每乙個div設定乙個width:0;然後進行分配flex-grow,這個時候加上去的寬度就是實實在在的width.

示例**入下:

class="

a">

class="

b p">b

class="

c p">c

class="

d p">d

a 

.b .c

.d

flex grow帶來的排版問題

變形問題 flex布局中,當乙個元素定義了flex grow,而其他元素沒定義flex grow時,可能會將其他元素擠壓變形。這時給其他元素新增一下css樣式 flex shrink 0 可以解決這個問題 省略號問題 在flex布局的大容器a中併排放置兩個子容器,並且子容器設定flex 1,子容器中...

關於flex grow的陷阱

前一陣在使用flex布局進行寬度處理時,發現了flex grow並不是按照預期的情況進行比例處理,頓時覺得有點懵逼。在stackoverflow搜尋之後,終於搞明白了其中的奧秘。話不多說,直接上 flex container flex item big我們參照阮一峰的flex教程就可以看到對於這個屬...

flex shrink和flex grow的區別

flex shrink 當主軸方向顯示不下所有專案時,專案是否進行壓縮。預設值為1 取正整數,最小值為0,為0時表示不壓縮。那麼如何壓縮?簡單的思路 把主軸方向不夠的部分,按照幾個專案的值進行壓縮。實施的 如下 12 3 設定乙個大的div,裡面包含3個小的div,大的div設定的寬度為500px,...