CSS中的Flex布局是一種非常常用的布局方式。在最近的前端開發面試題中,也經常會涉及到Flex布局相關的考題。下面我們來看一道典型的CSS Flex布局考題:
.parent { display: flex; flex-direction: column; } .child { flex-grow: 1; flex-basis: 0; }
這道題目主要考察CSS Flex布局中的兩個重要屬性:flex-grow和flex-basis。下面我們分別來解釋這兩個屬性的含義:
flex-grow:指定Flex項目在父容器中剩余的空間分配比例,比如所有項目的flex-grow都為1,則所有項目將平分父容器的剩余空間。如果某個子項目的flex-grow為2,則它將獲得原本平分的兩倍的空間。
flex-basis:指定Flex項目的基準尺寸。默認情況下,子項目的基準尺寸是其本身的尺寸大小。如果我們將子項目的flex-basis屬性設置為0,則表示該子項目的基準尺寸為0,這意味著該子項目的尺寸將被壓縮到最小值。
回到題目中的樣式代碼,我們可以看到父容器的flex-direction屬性被設置為column,也就是Flex項目沿著垂直方向排列。而每個子項目的flex-grow屬性都被設置為1,表示它們將平分父容器垂直方向上的剩余空間。此時如果沒有其他限制條件,所有子項目的高度都將相等。
其中比較關鍵的是子項目的flex-basis屬性被設置為0。這意味著,所有子項目的尺寸將被壓縮到最小。因此,即使子項目原本擁有的高度比其他項目大,它的高度也將被壓縮到最小值。在這種情況下,所有子項目的高度都將相等。
總之,這道題目主要考察CSS Flex布局中的兩個重要屬性:flex-grow和flex-basis。掌握這些屬性的含義和使用方法,可以幫助我們更好地理解和應用CSS Flex布局。