# 2023-2-21 CSS ###### tags: `HTML` `CSS` ```css .parent{ /*flex的第一子層物件都可以設定寬高,不管是不是inline*/ display:flex; flex-direction:...; /* flex-wrap控制交叉軸方向 */ flex-wrap:...; /* justify-content控制軸向 */ /* 不要太依賴justify-content */ justify-content:...; /* 控制彈性列or欄 在父層空間 交叉軸的位置與空間 */ /* 預設是stretch */ /* 沒有flex-wrap的話,彈性列就是整個父層空間 */ align-content: stretch; /* 控制子物件 在彈性列裡面 交叉軸的位置 */ align-items:...; } .child{ /* 控制單一子物件 在彈性列裡面 交叉軸的位置 */ align-self:...; /* auto可以分配剩餘的邊界空間,但上下方向不行,除非父物件有設定flex */ margin: auto; margin-left: auto; /* order預設值為0 */ order:...; /* 控制子物件 在彈性列中 剩餘空間的伸展值 */ flex-grow:...; /* ... 剩餘空間的縮減 * 預設為1,0為不縮減 */ flex-shrink:...; /* 物件在主軸上的長度 */ flex-basis:...; /* flex-grow flex-shrink flex-basis 三者濃縮 */ flex: <flex-grow> <flex-shrink> <flex-basis>; } ``` example: ![](https://i.imgur.com/aKam9Jt.jpg) example: ![](https://i.imgur.com/ZSsNP87.png) ```css .child:nth-child(3){ margin-left:auto; } ``` --- example: ![](https://i.imgur.com/nNYAw7j.png) ```css /* 動態父物件,子物件自動伸展 */ .child{ width: 0px; flex-grow: 1; } .child:nth-child(2){ flex-grow: 3; } ``` --- example: ![](https://i.imgur.com/JwDlGuA.png) ```css .child{ width: 0px; flex-shrink: 0; } .child:nth-child(2){ flex-shrink: 1; } ``` --- **學習建議**: 1. 學跟熟是兩回事 2. 嘗試紙上切版 3. 不建議在flex的下方直接放img,而不用div包裹,==容器跟資料要分清楚==