flex: 1; 的具體含義 - daniel-qa/Vue GitHub Wiki
当需要让多个元素平均分配父容器的剩余空间时,可以使用 flex: 1;:
<template>
<div style="display: flex; height: 100px; border: 1px solid #ccc;">
<div style="flex: 1; background-color: lightblue;">區塊 1</div>
<div style="flex: 1; background-color: lightgreen;">區塊 2</div>
<div style="flex: 1; background-color: lightcoral;">區塊 3</div>
</div>
</template>
- 結果:三個子元素平分父容器的寬度。
当某个子元素需要占用容器中所有剩余空间时,可以使用 flex: 1;:
<template>
<div style="display: flex; height: 100px; border: 1px solid #ccc;">
<div style="background-color: lightblue; width: 100px;">固定區塊</div>
<div style="flex: 1; background-color: lightgreen;">彈性區塊</div>
</div>
</template>
結果:第一个区块宽度固定为 100px,第二个区块占用剩余所有宽度。
当某些子元素需要根据剩余空间动态变化,而其他元素保持固定大小时:
<template>
<div style="display: flex; height: 100px; border: 1px solid #ccc;">
<div style="width: 150px; background-color: lightblue;">固定大小</div>
<div style="flex: 1; background-color: lightgreen;">自適應大小</div>
<div style="width: 150px; background-color: lightcoral;">固定大小</div>
</div>
</template>
結果:中间的区块会根据父容器的大小动态伸缩,而两边的区块宽度固定。
flex-grow: 1;
flex-shrink: 1;
flex-basis: 0;
flex-grow: 1
該元素會占用父容器中所有剩餘空間的 1 倍份額(和其他元素的 flex-grow 比例比較)。
flex-shrink: 1
如果父容器空間不足,該元素會按比例縮小。
flex-basis: 0
該元素的初始主軸尺寸為 0,剩餘空間完全由 flex-grow 決定。