å¼¹æ§çå¸å±ä¸çç坹齿¹å¼
Box Alignment è§è详ç»è¯´æäºå¯¹é½ (alignment) å¨åç§å¸å±æ¹æ³ä¸çå·¥ä½åç; 卿¤é¡µé¢ä¸ï¼æä»¬å°æ¢è®¨çå对é½ï¼box aligmentï¼å¨ Flexbox ç¯å¢ä¸çå·¥ä½åçãç±äºæ¤é¡µé¢æ¨å¨è¯¦ç»è¯´æç¹å®äº Flexbox 忡坹é½çå 容ï¼å æ¤åºä¸Box Alignment 页é¢ä¸èµ·é 读ï¼è¯¥é¡µé¢è¯¦ç»è¯´æäºä¸åå¸å±æ¹æ³çæ¡å¯¹é½çå¸¸è§æ¹æ³ã
åºç¡ç¤ºä¾
卿¤ç¤ºä¾ä¸ï¼ä½¿ç¨justify-contentå¨ä¸»è½´ä¸å¯¹é½ä¸ä¸ªå¼¹æ§å
ç´ ï¼flex itemsï¼ï¼å¹¶ä½¿ç¨align-itemså¨ååè½´ä¸å¯¹é½ã第ä¸ä¸ªå
ç´ éè¿å°align-self设置为å±
䏿¥è¦çå¨ç¶å
ç´ è®¾ç½®ç align-items å¼ã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸ <br />å
·æ <br />é¢å¤ç <br />ææ¬</div>
</div>
.box {
display: flex;
align-items: flex-start;
justify-content: space-between;
border: 2px dotted rgb(96 139 168);
}
.box :first-child {
align-self: center;
}
è½´ ä¸ flex-direction
Flexbox ä¸ææ¡£çåå
¥æ¨¡å¼æå
³ï¼å æ¤å¦æä½ 使ç¨è±è¯å¹¶å°justify-content设置为 flex-endï¼åä¼å°é¡¹ç®å¯¹é½å° Flex 容å¨çæ«å°¾ãå¦æä½ å°flex-direction设置为è¡ï¼åæ¤å¯¹é½å°å¤äºå
èæ¹åã
使¯ï¼å¨ Flexbox ä¸ï¼ä½ å¯ä»¥éè¿å° flex-direction 设置为 column æ¥æ´æ¹ä¸»è½´ãå¨è¿ç§æ åµä¸ï¼justify-content å°å¨åæ¹åä¸å¯¹é½é¡¹ç®ãå æ¤ï¼å¨ Flexbox ä¸å·¥ä½æ¶æå®¹æèè主轴å纵轴ï¼å¦ä¸æç¤ºï¼
- 主轴ç±
flex-direction设置æ¹åï¼éè¿justify-content屿§å¯¹é½ - 纵轴穿è¿ä¸»è½´ï¼éè¿
align-contentï¼align-self/align-items对é½
主轴
纵轴
justify-self å¨ Flexbox å¸å±ä¸å¤±æ
å¨ä¸»è½´ä¸ï¼Flexbox 尿们çå
容ä½ä¸ºä¸ä¸ªç»è¿è¡å¤çã计ç®å¸ç½®åå
ç´ æéç空é´éï¼ç¶åå©ä½ç©ºé´å¯ç¨äºåé
ã justify-content屿§æ§å¶å©ä½ç©ºé´çä½¿ç¨æ¹å¼ã设置justify-contentï¼flex-endï¼é¢å¤ç©ºé´æ¾å¨ææåå
ç´ ä¹åï¼justify-contentï¼space-aroundï¼å®æ¾å¨è¯¥ç»´åº¦çåå
ç´ ç两侧ï¼ççã
è¿æå³çå¨ Flexbox ä¸ï¼justify-self屿§æ²¡ææä¹ï¼å 为æä»¬æ»æ¯å¤çç§»å¨æ´ä¸ªå
ç´ ç»ã
å¨ååè½´ä¸ï¼align-selfæ¯ææä¹çï¼å 为æä»¬å¯è½å¨è¯¥ç»´åº¦ä¸ç flex 容å¨ä¸æé¢å¤ç空é´ï¼å
¶ä¸å个å
ç´ å¯ä»¥ç§»å¨å°å¼å§åç»æä½ç½®ã
å¯¹é½ ä¸ auto margins
å¨ Flexbox 䏿ä¸ä¸ªç¹å®çç¨ä¾ï¼æä»¬å¯è½ä¼è®¤ä¸ºjustify-selfæ¯æä»¬éè¦çï¼è¿å°±æ¯æä»¬æ³è¦åå²ä¸ç» flex itemsï¼ä¹è®¸æ¯ä¸ºäºå建ä¸ä¸ªåå²å¯¼èªæ¨¡å¼ãå¯¹äºæ¤ç¨ä¾ï¼æä»¬å¯ä»¥ä½¿ç¨èªå¨è¾¹è·ã设置为 auto çè¾¹è·å°å¸æ¶å
¶ç»´åº¦ä¸çææå¯ç¨ç©ºé´ãè¿å°±æ¯ä»¥èªå¨è¾¹è·ä¸ºä¸å¿çåçå·¥ä½åçãéè¿å°å·¦å³è¾¹è·è®¾ç½®ä¸º autoï¼æä»¬åç两侧é½ä¼å°è¯å ç¨ææå¯ç¨ç©ºé´ï¼å æ¤å°ç忍å
¥ä¸å¿ã
éè¿å¨ä¸ç»å¼¹æ§é¡¹ç®ä¸çä¸ä¸ªé¡¹ç®ä¸è®¾ç½® auto çmarginå
¨é¨å¯¹é½ä»¥å¼å§ï¼æä»¬å¯ä»¥å建æå导èªãè¿éç¨äº Flexbox å对é½å±æ§ã䏿¦æ²¡æå¯ç¨äºèªå¨è¾¹è·ç空é´ï¼è¯¥é¡¹ç®çè¡ä¸ºä¸ææå
¶ä»å¼¹æ§é¡¹ç®çè¡ä¸ºç¸åï¼å¹¶ä¸æ¶ç¼©ä»¥å°è¯éå空é´ã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div class="push">å</div>
<div>äº</div>
</div>
.box {
display: flex;
border: 2px dotted rgb(96 139 168);
}
.push {
margin-left: auto;
}
gap 屿§
å¨åå ç´ ä¹é´å建åºå®å¤§å°çå·®è·
å¨ä¸»è½´ä¸ï¼column-gap屿§å°å¨ç¸é»é¡¹ä¹é´å建åºå®å¤§å°çé´éã
å¨çºµè½´ä¸ï¼row-gap屿§å°å¨ç¸é»çåå
ç´ ä¹é´å建é´è·ï¼å æ¤è¿å¿
é¡»å°flex-wrap设置为wrap,以使å
¶å
·æä»»ä½ææã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
<div>å
</div>
</div>
.box {
width: 450px;
display: flex;
flex-wrap: wrap;
row-gap: 10px;
column-gap: 2em;
border: 2px dotted rgb(96 139 168);
}
.box > * {
flex: 1;
}