Flexbox çåºæ¬æ¦å¿µ
彿§çåçé¢é 置模çµï¼éå¸¸ç¨±çº flexboxï¼æ¯ä¸ç¨®ä¸ç¶ççé¢é 置模åï¼ç¨æ¼å¨é ç®ä¹éåé 空éï¼ä¸¦å å«å¤ç¨®å°é½åè½ãæ¬ææ¦è¿°äº flexbox ç主è¦ç¹æ§ï¼æåå°å¨å¾çºçæå䏿´è©³ç´°å°æ¢è¨éäºç¹æ§ã
ç¶æå說 flexbox æ¯ä¸ç¶çï¼æåæè¿°çæ¯ flexbox 䏿¬¡åªèçä¸åç¶åº¦ççé¢é ç½®ââè¦éº¼æ¯åï¼è¦éº¼æ¯æ¬ãéè CSS ç¶²æ ¼çé¢é ç½®çäºç¶æ¨¡åå½¢æå°æ¯ï¼å¾è å¯ä»¥åææ§å¶æ¬ååã
flexbox çå ©å軸ç·
ä½¿ç¨ flexbox æï¼ä½ éè¦å¾å
©å軸ç·ä¾æèââ主軸è交é¯è»¸ãä¸»è»¸ç± flex-direction 屬æ§å®ç¾©ï¼è交é¯è»¸åèå
¶åç´ãæåå¨ flexbox 䏿åçæ¯ä»¶äºé½èéå
©åè»¸ç·æéï¼å æ¤å¾ä¸éå§å°±äºè§£å®åçé使¹å¼é常éè¦ã
主軸
ä¸»è»¸ç± flex-direction å®ç¾©ï¼å®æååå¯è½çå¼ï¼
rowrow-reversecolumncolumn-reverse
å¦æä½ é¸æ row æ row-reverseï¼ä½ çä¸»è»¸å°æ²¿èå以è¡å
§æ¹å延伸ã
鏿 column æ column-reverseï¼ä½ ç主軸å°ä»¥å塿¹å延伸ï¼å¾é é¢é é¨å°åºé¨ã
交é¯è»¸
交é¯è»¸è主軸åç´ãå æ¤ï¼å¦æä½ ç flex-directionï¼ä¸»è»¸ï¼è¨å®çº row æ row-reverseï¼äº¤é¯è»¸å°±ææ²¿èæ¬åä¸å»¶ä¼¸ã
å¦æä½ çä¸»è»¸æ¯ column æ column-reverseï¼é£éº¼äº¤é¯è»¸å°±ææ²¿èå延伸ã
èµ·å§ç·èçµé»ç·
å¦ä¸åéè¦çè§£çé黿¯ï¼flexbox å°æä»¶çæ¸å¯«æ¨¡å¼æ²æä»»ä½åè¨ãFlexbox 䏿åªåè¨æææåè¡é½å¾æä»¶çå·¦ä¸è§éå§ï¼åå³å´å»¶ä¼¸ï¼æ°è¡ååºç¾å¨ä¸æ¹ãç¸åå°ï¼å®æ¯æ´æææ¸å¯«æ¨¡å¼ï¼å°±åå ¶ä»çé輯屬æ§èå¼ä¸æ¨£ã
ä½ å¯ä»¥å¨å¾çºçæç« ä¸é±è®æ´å¤éæ¼ flexbox èæ¸å¯«æ¨¡å¼ä¹éçéä¿ï¼ç¶èï¼ä»¥ä¸çæè¿°æè©²æå©æ¼è§£éçºä»éº¼æåå¨æè¿° flex é ç®æµåæ¹åæï¼ä¸ä½¿ç¨å·¦ãå³ãä¸ãä¸éäºè©ã
妿 flex-direction æ¯ rowï¼ä¸ææ£å¨ä½¿ç¨è±æï¼é£éº¼ä¸»è»¸çèµ·å§éå°å¨å·¦å´ï¼çµé»éå¨å³å´ã
妿æä½¿ç¨é¿æä¼¯æï¼é£éº¼æç主軸起å§éå°å¨å³å´ï¼çµé»éå¨å·¦å´ã
å¨éå ©ç¨®æ æ³ä¸ï¼äº¤é¯è»¸çèµ·å§éé½å¨ flex 容å¨çé é¨ï¼çµé»éå¨åºé¨ï¼å çºéå ©ç¨®èªè¨é½å ·ææ°´å¹³æ¸å¯«æ¨¡å¼ã
éäºä¸æ®µæéï¼ç¨èµ·å§åçµé»ä¾æèè䏿¯å·¦å峿è®å¾å¾èªç¶ï¼éå¨ä½ èçå ¶ä»éµå¾ªç¸å模å¼ççé¢é ç½®æ¹æ³ï¼å¦ CSS ç¶²æ ¼çé¢é ç½®ï¼ææå¾æç¨ã
flex 容å¨
ä½¿ç¨ flexbox æççååç¨±çº flex 容å¨ãè¦å»ºç«ä¸å flex 容å¨ï¼è«å°è©²ååç display 屬æ§è¨å®çº flexãç¶æåé麼åæï¼è©²å®¹å¨çç´æ¥åå
ç´ å°±æè®æ flex é
ç®ãä½ å¯ä»¥ä½¿ç¨ inline flex æ inline-flex ä¾å»ºç«è¡å
§ flex 容å¨ï¼æä½¿ç¨ block flex æ flex ä¾å»ºç«åå¡ç´ flex 容å¨ï¼èæ¤æç¢ºæ§å¶å®¹å¨æ¬èº«æ¯ä»¥è¡å
§éæ¯å塿 ¼å¼åä¸ä¸æé¡¯ç¤ºã
åå§å¼
å¦å CSS ä¸çææå±¬æ§ï¼flexbox ä¹å®ç¾©äºä¸äºåå§å¼ï¼æä»¥æ°ç flex 容å¨å §å®¹å°æå¦ä¸è¡¨ç¾ï¼
- é
ç®ä»¥åçæ¹å¼é¡¯ç¤ºï¼
flex-direction屬æ§çé è¨å¼çºrowï¼ã - é ç®å¾ä¸»è»¸çèµ·å§ééå§ã
- é
ç®å¨ä¸»ç¶åº¦ä¸ä¸æä¼¸å±ï¼ä½å¯ä»¥ç¸®å°ï¼flex é
ç®ç
flex-grow屬æ§é è¨å¼çº0ï¼èå ¶flex-shrink屬æ§é è¨å¼çº1ï¼ã - é
ç®å°æä¼¸å±ä»¥å¡«æ»¿äº¤é¯è»¸ç尺寸ï¼
align-items屬æ§çé è¨å¼çºstretchï¼ã - flex é
ç®ç
flex-basis屬æ§é è¨å¼çºautoãéè¡¨ç¤ºå¨æ¯ç¨®æ æ³ä¸ï¼å®å°çæ¼æ°´å¹³æ¸å¯«æ¨¡å¼ä¸ç flex é ç®widthï¼ä»¥ååç´æ¸å¯«æ¨¡å¼ä¸ç flex é ç®heightã妿尿çwidthï¼heightä¹è¨å®çºautoï¼åææ¹ç¨flex-basisçcontentå¼ã - ææé
ç®é½æå¨å®ä¸åä¸ï¼
flex-wrap屬æ§çé è¨å¼çºnowrapï¼ï¼å¦æå®åçµåçwidthï¼heightè¶ é容å¨å ç´ çwidthï¼heightï¼å°±ææº¢åºå®¹å¨ã
鿍£ççµææ¯ï¼ä½ çææé ç®é½æææä¸åï¼ä¸¦ä»¥å ¶å §å®¹ç大å°ä½çºå®åå¨ä¸»è»¸ä¸ç尺寸ã妿é ç®æ¸éå¤å°ç¡æ³å®¹ç´å¨å®¹å¨ä¸ï¼å®å䏿æè¡ï¼èæ¯ææº¢åºã妿æäºé ç®æ¯å ¶ä»é ç®é«ï¼ææé ç®é½ææ²¿è交é¯è»¸çæ´åé·åº¦ä¼¸å±ã
ä½ å¯ä»¥å¨ä¸æ¹ç峿ç¯ä¾ä¸çå°éç¨®æ æ³ã黿ãPlayãå¨ MDN Playground ä¸éåç¯ä¾ï¼ä¸¦ç·¨è¼¯é ç®ææ°å¢é ç®ä¾å試 flexbox çåå§è¡çºï¼
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸<br />æ<br />é¡å¤<br />æå</div>
</div>
.box > * {
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
.box {
border: 2px dotted rgb(96 139 168);
display: flex;
}
æ¹è® flex-direction
å¨ flex 容å¨ä¸å å
¥ flex-direction 屬æ§ï¼å¯ä»¥è®æåæ¹è® flex é
ç®ç顯示æ¹åãè¨å® flex-direction: row-reverse æè®é
ç®ç¹¼çºæ²¿èå顯示ï¼ä½æ¯èµ·å§ç·åçµé»ç·æå°èª¿ã
妿æåå° flex-direction æ¹çº columnï¼ä¸»è»¸æåæï¼æåçé
ç®ç¾å¨æä»¥æ¬çæ¹å¼é¡¯ç¤ºãè¨å® column-reverseï¼èµ·å§ç·åçµé»ç·æå次å°èª¿ã
䏿¹ç峿ç¯ä¾å° flex-direction è¨å®çº row-reverseã試試å
¶ä»å¼âârowãcolumn å column-reverseââççå
§å®¹æç¼çä»éº¼è®åã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
</div>
.box > * {
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
.box {
border: 2px dotted rgb(96 139 168);
display: flex;
flex-direction: row-reverse;
}
ä½¿ç¨ flex-wrap 建ç«å¤è¡ flex 容å¨
éç¶ flexbox æ¯ä¸ç¶æ¨¡åï¼ä½å¯ä»¥è® flex é ç®æè¡å°å¤è¡ãå¦æä½ éæ¨£åï¼ä½ æè©²å°æ¯ä¸è¡è¦çºä¸åæ°ç flex 容å¨ãä»»ä½ç©ºéåé é½å°å¨æ¯ä¸è¡ä¸é²è¡ï¼è䏿åèåä¸è¡æå¾ä¸è¡ã
è¦ç¢çæè¡è¡çºï¼è«å å
¥ flex-wrap 屬æ§ä¸¦è¨å®å¼çº wrapãç¾å¨ï¼å¦æä½ çé
ç®å¤ªå¤§èç¡æ³å¨åä¸è¡é¡¯ç¤ºï¼å®åå°ææå°ä¸ä¸è¡ã䏿¹ç峿ç¯ä¾å
å«å·²çµ¦å® width çé
ç®ãéäºé
ç®ç總寬度è¶
éäº flex 容å¨ç寬度ãç±æ¼ flex-wrap è¨å®çº wrapï¼é
ç®ææå°å¤è¡ãå¦æä½ å°å
¶è¨å®çº nowrapï¼éæ¯åå§å¼ï¼ï¼å®åå°æç¸®å°ä»¥é©æå®¹å¨ãå®åæç¸®å°æ¯å çºå®å使ç¨äº flexbox çåå§å¼ï¼å
æ¬ flex-shrink: 1ï¼éå
許é
ç®ç¸®å°ã妿é
ç®ç¡æ³ç¸®å°ï¼æç¡æ³ç¸®å°å°è¶³ä»¥å®¹ç´ï¼ä½¿ç¨ nowrap æå°è´æº¢ä½ã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
</div>
.box > * {
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
width: 200px;
}
.box {
width: 500px;
border: 2px dotted rgb(96 139 168);
display: flex;
flex-wrap: wrap;
}
å¨ç²¾é flex é ç®çæè¡æåä¸äºè§£æ´å¤éæ¼ flex é ç®æè¡çè³è¨ã
flex-flow 簡寫屬æ§
ä½ å¯ä»¥å° flex-direction å flex-wrap éå
©å屬æ§åä½µå° flex-flow 簡寫屬æ§ä¸ã
å¨ä¸æ¹ç峿ç¯ä¾ä¸ï¼è©¦èå°ç¬¬ä¸å弿¹çº flex-direction çå
許å¼ä¹ä¸âârowãrow-reverseãcolumn æ column-reverseï¼ä¸¦å°ç¬¬äºå弿¹çº wrap å nowrapã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
</div>
.box > * {
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
width: 200px;
}
.box {
width: 500px;
border: 2px dotted rgb(96 139 168);
display: flex;
flex-flow: row wrap;
}
æç¨æ¼ flex é ç®ç屬æ§
çºäºæ§å¶æ¯å flex é ç®çè¡å §å°ºå¯¸ï¼æåééä¸å屬æ§ç´æ¥éå®å®åï¼
æåå°å¨ä¸é¢ç°¡è¦ä»ç´¹éäºå±¬æ§ï¼ä½å¦æä½ æ³è¦æ´å ¨é¢çè³è¨ï¼è«å鱿§å¶ä¸»è»¸ä¸ flex é ç®çæ¯ä¾æåã
卿åè½å¤ çè§£éäºå±¬æ§ä¹åï¼æåéè¦èæ ®å¯ç¨ç©ºéçæ¦å¿µãç¶æåæ¹è®éäº flex 屬æ§çå¼æï¼æåæ£å¨æ¹è®å¯ç¨ç©ºé卿åçé ç®ä¹éåé çæ¹å¼ãéåå¯ç¨ç©ºéçæ¦å¿µå¨æåè¨è«å°é½é ç®æä¹å¾éè¦ã
妿æåå¨ä¸å 500 åç´ å¯¬ç容å¨ä¸æä¸å 100 åç´ å¯¬çé ç®ï¼é£éº¼æåéè¦ç¨ä¾æçé ç®çç©ºéæ¯ 300 åç´ ãéçä¸äº 200 åç´ çå¯ç¨ç©ºéã妿æå䏿¹è®åå§å¼ï¼flexbox æå°è©²ç©ºéæ¾å¨æå¾ä¸åé ç®ä¹å¾ã
妿æå叿é
ç®é·å¤§ä¸¦å¡«æ»¿ç©ºéï¼é£éº¼æåéè¦ä¸ç¨®æ¹æ³ä¾å¨é
ç®ä¹éåé
å©é¤ç空éãæåæç¨æ¼é
ç®æ¬èº«ç flex 屬æ§ï¼è½å¤ 決å®è©²å¯ç¨ç©ºéæå¦ä½å¨å層ç´ç flex é
ç®ä¹éåé
ã
flex-basis 屬æ§
flex-basis å®ç¾©äºè©²é
ç®å¨å¯ç¨ç©ºéæ¹é¢çå°ºå¯¸ãæ¤å±¬æ§çåå§å¼çº autoââå¨é種æ
æ³ä¸ï¼çè¦½å¨ææ¥ç該é
ç®æ¯å¦æå°ºå¯¸ãå¨ä¸é¢çç¯ä¾ä¸ï¼ææé
ç®é½æ 100 åç´ ç寬度ãé被ç¨ä½ flex-basisã
妿é
ç®æ²æå°ºå¯¸ï¼åå
§å®¹ç尺寸被ç¨ä½ flex-basisãéå°±æ¯çºä»éº¼ç¶æååªå¨ç¶å
ç´ ä¸å®£å display: flex ä¾å»ºç« flex é
ç®æï¼ææé
ç®é½æç§»å°ä¸åä¸ï¼ä¸¦ä¸åªä½ç¨é¡¯ç¤ºå
¶å
§å®¹æéç空éã
flex-grow 屬æ§
ç¶ flex-grow 屬æ§è¨å®çºæ£æ´æ¸æï¼å¦ææå¯ç¨ç©ºéï¼flex é
ç®å¯ä»¥æ²¿è主軸å¾å
¶ flex-basis éå§å¢é·ãé
ç®æ¯å¦æä¼¸å±ä»¥ä½ç¨è©²è»¸ä¸çææå¯ç¨ç©ºéï¼æå
ä½ç¨é¨åå¯ç¨ç©ºéï¼å決æ¼å
¶ä»é
ç®æ¯å¦ä¹å
許å¢é·ä»¥åå®åç flex-grow 屬æ§å¼ã
æ¯åå
·ææ£å¼çé
ç®ææ ¹æå
¶ flex-grow 弿¶èä¸é¨åå¯ç¨ç©ºéã妿æåå°ä¸è¿°ç¯ä¾ä¸çææé
ç®é½è¨å® flex-grow å¼çº 1ï¼é£éº¼ flex 容å¨ä¸çå¯ç¨ç©ºéå°å¨æåçé
ç®ä¹éå¹³ååé
ï¼å®å尿伏å±ä»¥å¡«æ»¿ä¸»è»¸ä¸ç容å¨ã妿æå給第ä¸åé
ç®ä¸å flex-grow å¼çº 2ï¼èå
¶ä»é
ç®åçº 1ï¼å總å
±æ 4 åé¨åï¼å¯ç¨ç©ºéç 2 åé¨åå°åé
給第ä¸åé
ç®ï¼å¨ä¸è¿°ç¯ä¾ä¸çº 200 åç´ ä¸ç 100 åç´ ï¼ï¼èå
¶ä»å
©åé
ç®ååé
1 åé¨åï¼å¨ 200 åç´ ç¸½éä¸å 50 åç´ ï¼ã
flex-shrink 屬æ§
flex-grow 屬æ§èçå¨ä¸»è»¸ä¸å¢å 空éï¼è flex-shrink 屬æ§åæ§å¶å¦ä½æ¸å°ç©ºéã妿æåå¨å®¹å¨ä¸æ²æè¶³å¤ ç空é便çæåçé
ç®ï¼ä¸¦ä¸ flex-shrink è¨å®çºæ£æ´æ¸ï¼é£éº¼é
ç®å¯ä»¥è®å¾æ¯ flex-basis æ´å°ãè flex-grow 䏿¨£ï¼å¯ä»¥åé
ä¸åçå¼ä»¥ä½¿ä¸åé
ç®æ¯å
¶ä»é
ç®æ¶ç¸®å¾æ´å¿«ââflex-shrink å¼è¨å®è¼é«çé
ç®å°æ¯å
¶å層ç´å¼è¼ä½çé
ç®æ¶ç¸®å¾æ´å¿«ã
ä¸åé
ç®å¯ä»¥ç¸®å°å°å
¶ min-content 尺寸ãå¨è¨ç®å°ç¼ççå¯¦éæ¶ç¸®éæï¼æèæ
®å°éåæå°å°ºå¯¸ï¼éæå³è flex-shrink çè¡çºå¯è½çèµ·ä¾ä¸å¦ flex-grow ä¸è´ãå æ¤ï¼æåå°å¨æ§å¶ä¸»è»¸ä¸é
ç®æ¯ä¾ä¸æä¸æ´è©³ç´°å°æ¢è¨éåæ¼ç®æ³çé使¹å¼ã
å註ï¼flex-grow å flex-shrink çéäºå¼æ¯æ¯ä¾ãé常ï¼å¦ææåå°ææé
ç®é½è¨å®çº flex: 1 1 200pxï¼ç¶å¾å¸æä¸åé
ç®ä»¥å
©åçé度å¢é·ï¼æåæå°è©²é
ç®è¨å®çº flex: 2 1 200pxã使¯ï¼å¦æä½ 顿ï¼ä¹å¯ä»¥ä½¿ç¨ flex: 10 1 200px å flex: 20 1 200pxã
flex 屬æ§ç簡寫å¼
ä½ å¾å°æçå° flex-growãflex-shrink å flex-basis 屬æ§å®ç¨ä½¿ç¨ï¼ç¸åå°ï¼å®å被çµåå° flex 簡寫屬æ§ä¸ãflex 簡寫屬æ§å
è¨±ä½ ææ¤é åºè¨å®éä¸åå¼ââflex-growãflex-shrinkãflex-basisã
䏿¹ç峿ç¯ä¾å
è¨±ä½ æ¸¬è©¦ flex 簡寫屬æ§çä¸åå¼ï¼è«è¨ä½ï¼ç¬¬ä¸å弿¯ flex-growã給å®ä¸åæ£å¼æå³èé
ç®å¯ä»¥å¢é·ã第äºåæ¯ flex-shrinkââææ£å¼æï¼é
ç®å¯ä»¥ç¸®å°ï¼ä½åææ¯å®åçç¸½å¼æº¢åºä¸»è»¸ãæå¾ä¸å弿¯ flex-basisï¼éæ¯é
ç®ç¨ä½å¢é·å縮å°åºç¤çå¼ã
<div class="box">
<div class="one">ä¸</div>
<div class="two">äº</div>
<div class="three">ä¸</div>
</div>
.box > * {
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
.box {
border: 2px dotted rgb(96 139 168);
display: flex;
}
.one {
flex: 1 1 auto;
}
.two {
flex: 1 1 auto;
}
.three {
flex: 1 1 auto;
}
éæä¸äºé å®ç¾©ç簡寫å¼ï¼æ¶µèäºå¤§å¤æ¸ä½¿ç¨æ å¢ãä½ ç¶å¸¸æå¨æå¸ä¸çå°éäºå¼ï¼èä¸å¨è¨±å¤æ æ³ä¸ï¼éäºå°±æ¯ä½ æéè¦ä½¿ç¨çå ¨é¨ãé å®ç¾©çå¼å¦ä¸ï¼
flex: initialflex: autoflex: noneflex: <positive-number>
initial 弿¯ä¸åå
¨ CSS ééµåï¼ä»£è¡¨å±¬æ§çåå§å¼ãè¨å® flex: initial æå°é
ç®éè¨çºä¸å詳細屬æ§çåå§å¼ï¼éè flex: 0 1 auto ç¸åãflex-grow çåå§å¼çº 0ï¼æä»¥é
ç®ä¸æå¢é·è¶
éå
¶ flex-basis 尺寸ãflex-shrink çåå§å¼çº 1ï¼æä»¥é
ç®å¯ä»¥å¨éè¦æç¸®å°è䏿¯æº¢åºãflex-basis çåå§å¼çº autoãé
ç®è¦éº¼ä½¿ç¨å¨ä¸»ç¶åº¦ä¸è¨å®çä»»ä½å°ºå¯¸ï¼è¦éº¼å¾å
§å®¹å°ºå¯¸ä¸ç²åå
¶å°ºå¯¸ã
ä½¿ç¨ flex: auto èä½¿ç¨ flex: 1 1 auto ç¸åï¼éè flex: initial ç¸ä¼¼ï¼åªæ¯é
ç®å¯ä»¥å¢é·ä¸¦å¡«æ»¿å®¹å¨ï¼ä¹å¯ä»¥å¨éè¦æç¸®å°ã
ä½¿ç¨ flex: none å°å»ºç«å®å
¨ä¸å
·å½æ§ç flex é
ç®ãéå°±åä½ å¯«äº flex: 0 0 autoãé
ç®ä¸è½å¢é·æç¸®å°ï¼ä¸¦å°ä½¿ç¨ flex-basis çº auto ç flexbox é²è¡æçã
ä½ å¨æå¸ä¸ç¶å¸¸çå°çç°¡å¯«æ¯ flex: 1 æ flex: 2 ççãéåå¥è寫 flex: 1 1 0 æ flex: 2 1 0 ççç¸åãç±æ¼ flex-basis: 0ï¼é
ç®ç²å¾æå°å°ºå¯¸ï¼ç¶å¾ææ¯ä¾å¢é·ä»¥å¡«æ»¿å¯ç¨ç©ºéãå¨é種æ
æ³ä¸ï¼flex-shrink å¼çº 1 æ¯å¤é¤çï¼å çºé
ç®å¾æå°å°ºå¯¸éå§ââå®åæ²æè¢«è³¦äºä»»ä½å¯è½å°è´å®åæº¢åº flex 容å¨ç尺寸ã
å¨ä¸æ¹ç峿ç¯ä¾ä¸è©¦è©¦éäºç°¡å¯«å¼ã
<div class="box">
<div class="one">ä¸</div>
<div class="two">äº</div>
<div class="three">ä¸</div>
</div>
.box > * {
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
.box {
border: 2px dotted rgb(96 139 168);
display: flex;
}
.one {
flex: 1;
}
.two {
flex: 1;
}
.three {
flex: 1;
}
é ç®éçå°é½ãå ©ç«¯å°é½èå¯ç¨ç©ºéåé
flexbox çä¸åééµç¹æ§æ¯è½å¤ å¨ä¸»è»¸å交é¯è»¸ä¸å°é½åå ©ç«¯å°é½é ç®ï¼ä»¥åå¨ flex é ç®ä¹éåé 空éãè«æ³¨æï¼éäºå±¬æ§æ¯è¨å®å¨ flex 容å¨ä¸ï¼è䏿¯å¨é ç®æ¬èº«ä¸ã
align-items
align-items 屬æ§å¨äº¤é¯è»¸ä¸å°é½ææç flex é
ç®ã
æ¤å±¬æ§çåå§å¼çº stretchï¼éå°±æ¯çºä»éº¼ flex é
ç®é è¨æä¼¸å±å° flex 容å¨çé«åº¦ï¼å¦æ flex-direction è¨å®çº column æ column-reverseï¼åçºå¯¬åº¦ï¼ãéåé«åº¦å¯è½ä¾èªå®¹å¨ä¸æé«çé
ç®ï¼ææ¯å¨ flex 容卿¬èº«ä¸è¨å®ç尺寸ã
ä½ å¯ä»¥æ¹çºå° align-items è¨å®çº flex-startï¼æç°¡å¯«çº startï¼ï¼ä»¥ä½¿é
ç®å¨ flex 容å¨çéé å°é½ï¼æè¨å®çº flex-endï¼æç°¡å¯«çº endï¼ï¼ä»¥å°å®åçµå°¾å°é½ï¼æè¨å®çº centerï¼ä»¥å°å®åç½®ä¸å°é½ãå¨å³æç¯ä¾ä¸è©¦è©¦éåââæçµ¦äº flex 容å¨ä¸åé«åº¦ï¼ä»¥ä¾¿ä½ å¯ä»¥çå°é
ç®å¦ä½å¨å®¹å¨å
§ç§»åãççå¦æä½ å° align-items çå¼è¨å®çºä»¥ä¸éäºæç¼çä»éº¼ï¼
stretchflex-startflex-endstartendcenterbaselinelast baseline
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸<br />æ<br />é¡å¤<br />æå</div>
</div>
.box > * {
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
.box {
width: 500px;
height: 130px;
border: 2px dotted rgb(96 139 168);
display: flex;
align-items: flex-start;
}
align-items è¨å®å¨ flex 容å¨ä¸ï¼ä¸¦å½±é¿ææç flex é
ç®ãå¦æä½ æ³è®æå flex é
ç®çå°é½æ¹å¼èå
¶ä»é
ç®ä¸åï¼ä½ å¯ä»¥å¨è©² flex é
ç®ä¸è¨å® align-selfã
justify-content
justify-content 屬æ§ç¨æ¼å¨ä¸»è»¸ä¸å°é½é
ç®ï¼ä¹å°±æ¯ flex-direction è¨å®çæµåæ¹åãåå§å¼çº flex-startï¼éæå°é
ç®å°é½å°å®¹å¨çèµ·å§éï¼ä½ä½ ä¹å¯ä»¥å°å¼è¨å®çº flex-end 以å°å®åå°é½å°çµå°¾ï¼æ center 以å°å®åç½®ä¸å°é½ã
ä½ éå¯ä»¥ä½¿ç¨ space-between å¼ï¼å°é
ç®æçå¾çææå©é¤ç©ºéå¹³ååé
å°é
ç®ä¹éï¼é樣æ¯åé
ç®ä¹éå°±ææç¸çç空éãè¦ä½¿æ¯åé
ç®çå·¦å³å
©å´ï¼ææ¬çé é¨ååºé¨ï¼æç¸çç空éï¼è«ä½¿ç¨ space-around å¼ãä½¿ç¨ space-aroundï¼é
ç®å
©ç«¯åæä¸å大å°ç空éãæè
ï¼è¦ä½¿é
ç®å¨åæç¸çç空éï¼è«ä½¿ç¨ space-evenly å¼ãä½¿ç¨ space-evenlyï¼é
ç®å
©ç«¯åæä¸å宿´å¤§å°ç空éã
å¨å³æç¯ä¾ä¸è©¦è©¦ justify-content ç以ä¸å¼ï¼
startendleftrightnormalflex-startflex-endcenterspace-aroundspace-betweenspace-evenlystretch
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
</div>
.box > * {
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
.box {
border: 2px dotted rgb(96 139 168);
display: flex;
justify-content: flex-start;
}
å¨ flex 容å¨ä¸å°é½é ç®ä¸ææ´æ·±å ¥å°æ¢è¨äºéäºå±¬æ§ï¼ä»¥ä¾¿æ´å¥½å°çè§£å®åçé使¹å¼ãç¶èï¼éäºåºæ¬ç¯ä¾å¨å¤§å¤æ¸ä½¿ç¨æ å¢ä¸é½å¾æç¨ã
justify-items
justify-items 屬æ§å¨ flexbox çé¢é
ç½®ä¸æè¢«å¿½ç¥ã
place-items è place-content
place-items å±¬æ§æ¯ align-items å justify-items ç簡寫屬æ§ã妿è¨å®å¨ flex 容å¨ä¸ï¼å®æè¨å®å°é½æ¹å¼ï¼ä½ä¸æè¨å®å
©ç«¯å°é½ï¼å çº justify-items å¨ flexbox ä¸æè¢«å¿½ç¥ã
éæå¦ä¸å簡寫屬æ§ï¼place-contentï¼å®å®ç¾©äº align-content å justify-content 屬æ§ãalign-content 屬æ§åªå½±é¿ææè¡ç flex 容å¨ï¼å
¶è©³ç´°èªªæè«åé± flex 容å¨ä¸çé
ç®å°é½ã
å¾çºæ¥é©
é±è®æ¬æå¾ï¼ä½ æè©²å° flexbox çåºæ¬ç¹æ§æäºäºè§£ãå¨ä¸ä¸ç¯æç« ä¸ï¼æåå°æ¢è¨æ¤è¦ç¯å¦ä½è CSS çå ¶ä»é¨åç¸éã