对é½å¼¹æ§å®¹å¨ä¸ç项ç®
å¼¹æ§ç乿以è½è¿ éå¸å¼å¼åè çæ³¨æï¼å ¶ä¸ä¸ä¸ªåå å°±æ¯å®é¦æ¬¡ä¸ºç½é¡µæ ·å¼å± 䏿ä¾äºåéçæ¹æ¡ãå¾çäºå®æä¾çåéçåç´å± ä¸è½åï¼æä»¬å¯ä»¥å¾è½»æ¾å°æä¸ä¸ªçåå± ä¸ãå¨è¿ä»½æåéï¼æä»¬å°è¯¦ç»å°ä»ç» flexbox çåç´åæ°´å¹³å± ä¸çå·¥ä½åçã
å¨å¼¹æ§çä¸ä½¿ç¨å¯¹é½
为äºä½¿æä»¬ççåå±
ä¸ï¼éè¿ align-items 屿§ï¼å¯ä»¥å°äº¤åè½´ä¸ç item 对é½ï¼æ¤æ¶ä½¿ç¨çæ¯åç´æ¹åçåè½´ãèä½¿ç¨ justify-content åå¯ä»¥å¯¹é½ä¸»è½´ä¸ç项ç®ï¼ä¸»è½´æ¯æ°´å¹³æ¹åçã

å¦ä¸ä»£ç æç¤ºï¼å³ä½¿æ¹å容卿å åµå ç´ ç sizeï¼å åµå ç´ ä¹ä¼ä¿æå± ä¸ç¶æ
<div class="box">
<div></div>
</div>
.box {
display: flex;
align-items: center;
justify-content: center;
border: 2px dotted rgb(96 139 168);
}
.box div {
width: 100px;
height: 100px;
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
æ§å¶å¯¹é½ç屿§
æ¬æåä¸ç屿§å¦ä¸ã
justify-content- æ§å¶ä¸»è½´ï¼æ¨ªè½´ï¼ä¸ææ flex 项ç®ç对é½ãalign-items- æ§å¶äº¤åè½´ï¼çºµè½´ï¼ä¸ææ flex 项ç®ç对é½ãalign-self- æ§å¶äº¤åè½´ï¼çºµè½´ï¼ä¸çå个 flex 项ç®ç对é½ãalign-content- æ§å¶â夿¡ä¸»è½´âç flex 项ç®å¨äº¤åè½´ç对é½ã
æä»¬ä¹ä¼äºè§£å° flexbox å¦ä½ä½¿ç¨ margin: auto æ¥å®ç°å± ä¸ã
夿³¨ï¼è¿äº Flexbox ç对é½å±æ§å·²ç»çº³å ¥ CSS Box Alignment Level 3æ åéäºãé¢è®¡è¿ç¹æ§å°æç»ä¼å代ä¹åå¨Flexbox Level Oneå®ä¹ç屿§ã
交åè½´
align-items åalign-self æ¯æ§å¶æä»¬ç flex 项ç®å¨äº¤åè½´ç对é½ï¼å¦æ flex-direction æ¯ row 忝æ§å¶ç«å对é½ï¼åä¹ flex-direction æ¯ column 忝æ§å¶æ¨ªå对é½ã
æä»¬æ£å¨ç¨ä¸ä¸ªæç®åçä¾åå交å轴对é½ã妿æä»¬å¨ç¶çº§ç容å¨å
ç´ ä¸æ·»å display: flex 屿§ï¼é£ä¹å®¹å¨éçææåå
ç´ å°ä¼åææ¨ªåæåç flex itemsãææç flex 项ç®ä¼ææ»¡äº¤åè½´æ¹åçé«åº¦ï¼å 为display: flex 屿§ä¼å° flex 项ç®çé«å®ä¹æå®¹å¨çé«åº¦ãå¦æä½ çç¶çº§å®¹å¨æè®¾ç½®é«åº¦ï¼å flex 项ç®ä¼ææ»¡æ´ä¸ªç¶çº§å®¹å¨çé«åº¦ï¼ä¸ä¼ç®¡ flex 项ç®éçå
容çå¤å°ã


flex items çé«åº¦å
¨é½åæä¸æ ·çåå æ¯ align-items 屿§çåå§å¼è®¾æ stretch æ§å¶äº¤å轴对é½ã
æä»¬å¯ä»¥ä½¿ç¨å ¶ä»ç弿¥æ§å¶é¡¹ç®ç坹齿¹å¼ï¼
align-items: stretchalign-items: flex-startalign-items: flex-endalign-items: startalign-items: endalign-items: centeralign-items: baselinealign-items: first baselinealign-items: last baseline
ä¸é¢çä¾åä¸ï¼align-items çå¼ä¸º stretchãå°è¯ç» align-items èµä¸å
¶ä»çå¼ç¶åçä¸å¨å¼¹æ§å®¹å¨éæ¯ä»ä¹æ ·ç坹齿æã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸ <br />å
·æ <br />é¢å¤ç <br />ææ¬</div>
</div>
.box {
border: 2px dotted rgb(96 139 168);
display: flex;
align-items: stretch;
}
.box div {
width: 100px;
height: 100px;
background-color: rgb(96 139 168 / 0.2);
border: 2px solid rgb(96 139 168);
border-radius: 5px;
}
align-self ç¨äºå¯¹é½å个 flex å项
align-items 屿§æ¯ç»ææ flex 项ç®ç»ä¸è®¾ç½® align-self ç对é½å±æ§ãè¿æå³çä½ è½ç»å个 flex é¡¹ç®æç¡®å°å£°æ align-self 屿§ãalign-self æ¥æ align-items çææå±æ§å¼ï¼å¦å¤è¿æä¸ä¸ª auto è½éç½®èªèº«çå¼ä¸º align-items å®ä¹çå¼ã
å¨ä¸é¢çä¸ä¸ªä¾åä¸ï¼flex 容å¨ä¸º align-items: flex-startï¼è¿æææ¯ææç flex 项ç®é½å¨äº¤åè½´æ¹åçå¼å§ç«¯å¯¹é½ãæç¨ first-child éæ©å¨ç»ç¬¬ä¸ä¸ª flex 项ç®è®¾ç½®äº align-self: stretch ï¼å¦å¤ä¸ä¸ª flex 项ç®ç¨ selected ç类设置æ align-self: center ãä½ è½è¯çæ¹å align-items æè
å¨å个 align-self çå¼ï¼å¯ä»¥åç°è¿äºå¼æ¯æä¹å½±å对é½çã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div class="selected">ä¸</div>
<div>å</div>
</div>
.box {
border: 2px dotted rgb(96 139 168);
display: flex;
align-items: flex-start;
height: 200px;
}
.box div {
background-color: rgb(96 139 168 / 0.2);
border: 2px solid rgb(96 139 168);
border-radius: 5px;
padding: 20px;
}
.box > *:first-child {
align-self: stretch;
}
.box .selected {
align-self: center;
}
æ¹å主轴æ¹å
å°ç®åä¸ºæ¢æä»¬å·²ç»çå°äºæä»¬ç flex-direction æ¯ row å使ç¨çè¯è¨ç书忹å¼ä¸ºä»ä¸è³ä¸ç表ç°è¡ä¸ºãè¿æå³çä¸»è½´æ¯æ°´å¹³æ¹åï¼äº¤å轴对é½åæ¯æä¸è³ä¸åç´æ¹åã

妿æä»¬æ¹åæä»¬ç flex-direction 为 column ï¼align-items å align-self 对é½ç flex 项ç®åæ¯æ°´å¹³æ¹åä»å·¦å¾å³ã

ä½ è½å¨ä¸é¢è¿ä¸ªä¾åä½éªä¸ä¸ï¼å®é¤äº flex-direction 为 column è¿ä¸ªå±æ§ï¼å
¶ä»ç屿§å¼ååä¸ä¸ªä¾åæ¯ä¸æ ·çã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div class="selected">ä¸</div>
<div>å</div>
</div>
.box {
border: 2px dotted rgb(96 139 168);
display: flex;
flex-direction: column;
align-items: flex-start;
width: 200px;
}
.box div {
background-color: rgb(96 139 168 / 0.2);
border: 2px solid rgb(96 139 168);
border-radius: 5px;
padding: 20px;
}
.box > *:first-child {
align-self: stretch;
}
.box .selected {
align-self: center;
}
轴对é½å 容ââalign-content 屿§
å°ç°å¨ä¸ºæ¢ï¼æä»¬å·²ç»å¯¹å®ä¹å¨ flex 容å¨éç flex é¡¹ç®æè
å个 flex 项ç®è¿è¡å¯¹é½æä½äºãå¦æä½ æä¸ä¸ªæè¡ç夿¡ flex 项ç®ç flex 容å¨ï¼ç¶åä½ å¯è½æ³ä½¿ç¨ align-content æ¥æ§å¶æ¯è¡ä¹é´ç©ºé´çåé
ï¼å¨è¿ç§ç¹å®çåºæ¯å«åpacking flex linesã
è¦ä½¿å¾ align-content çæï¼ä½ éè¦ä½ ç flex 容å¨ç height è¦å¤§äº flex 项ç®çå¯è§å
容ãç¶åå®ä¼å°ææç flex é¡¹ç®æå
æä¸åä¹åå对é½å©ä¸ç空é´ã
align-content 屿§çå¼å¦ä¸ï¼
align-content: flex-startalign-content: flex-endalign-content: startalign-content: endalign-content: centeralign-content: space-betweenalign-content: space-aroundalign-content: space-evenlyalign-content: stretchalign-content: normalï¼ä¸stretchçè¡ä¸ºç¸åï¼align-content: baselinealign-content: first baselinealign-content: last baseline
å¨ä¸é¢çä¾åï¼æä¸ä¸ª 400px é«ç flex 容å¨ï¼è½è¶³å¤å°æ¾ç¤º flex 项ç®ãalign-content çå¼ä¸º space-between çåäºåé
flex è¡ä¹é´ç空é´ã
å°è¯ç¨å
¶ä»ç屿§å¼æ¥ç align-content æ¯å¦ä½å½±åå¸å±çã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
<div>å
</div>
<div>ä¸</div>
<div>å
«</div>
</div>
.box {
width: 450px;
border: 2px dotted rgb(96 139 168);
display: flex;
flex-wrap: wrap;
height: 300px;
align-content: space-between;
}
.box > * {
padding: 20px;
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
flex: 1 1 100px;
}
.box div {
background-color: rgb(96 139 168 / 0.2);
border: 2px solid rgb(96 139 168);
border-radius: 5px;
padding: 20px;
}
å¨å¼ºè°ä¸æ¬¡æä»¬å¯ä»¥åæ¢æä»¬ç flex-direction 为 column å»è§å¯è¿ä¸ªå±æ§çè¡ä¸ºæ¯ææ ·çãåä¹å䏿 ·ï¼æä»¬éè¦è¶³å¤ç交å轴空é´å»æ¾ç¤ºææç flex 项ç®ä¹å¤è¿ææä¸å®çèªç±ç©ºé´ã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
<div>å
</div>
<div>ä¸</div>
<div>å
«</div>
</div>
.box {
display: flex;
flex-wrap: wrap;
flex-direction: column;
width: 400px;
height: 300px;
align-content: space-between;
border: 2px dotted rgb(96 139 168);
}
.box > * {
padding: 20px;
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
flex: 1 1 100px;
}
.box div {
background-color: rgb(96 139 168 / 0.2);
border: 2px solid rgb(96 139 168);
border-radius: 5px;
padding: 20px;
}
夿³¨ï¼space-evenly 没æå¨ flexbox ç¹æ§ä¸å®ä¹ï¼èæ¯åæ¥æ·»å å° Box Alignment çç¹æ§ç屿§ãæµè§å¨çæ¯ææ²¡æ flexbox ç¹æ§å¥½ã
æ¥ç justify-content å¨ MDN çææ¡£ è·å屿§å¼çæµè§å¨æ¯æçæ´å¤è¯¦ç»è¯´æã
对é½ä¸»è½´å 容
å°ç®åæä»¬å·²ç»çå° flex é¡¹ç®æ¯å¦ä½å¨äº¤åè½´ä¸å¯¹é½çï¼ç°å¨æä»¬å¯ä»¥çä¸ä¸ä¸»è½´ä¸ç对é½ãè¿éåªæä¸ä¸ªå±æ§æ¯ç¨äºä¸»è½´ä¸å¯¹é½ââjustify-contentãè¿æ¯å 为æä»¬æææç flex 项ç®å½æä¸ä¸ªç»å»å¤çãç¨ justify-content è¿ä¸ªå±æ§çæ¶åï¼æä»¬åªæ§å¶ä¸»è½´åºæ¾ç¤ºåºæ¥ flex 项ç®çå¤ä½ç©ºé´ã
卿们çæå¼å§çä¾åä¸ï¼æä»¬å¨ flex 容å¨å®ä¹äº display: flexï¼flex 项ç®åæ°´å¹³æéä»å®¹å¨çåå§ç«¯æ¾ç¤ºãè¿æ¯å 为 justify-content çåå§å¼æ¯ flex-start ï¼å
¶ä»å¤ä½ç空é´é½ä¼æ¾ç¤ºå¨ flex 项ç®çæåã

justify-content 屿§æå align-content 䏿 ·ç屿§å¼ï¼
justify-content: flex-startjustify-content: flex-endjustify-content: startjustify-content: endjustify-content: leftjustify-content: rightjustify-content: centerjustify-content: space-betweenjustify-content: space-aroundjustify-content: space-evenlyjustify-content: stretchï¼ä¸ start çè¡ä¸ºç¸åï¼justify-content: normalï¼ä¸ stretchï¼å ¶è¡ä¸ºä¸ start çä¸è´ï¼çè¡ä¸ºç¸åï¼
å¨ä¸é¢çä¾åä¸ï¼justify-content çå¼ä¸º space-between ã卿¾ç¤ºå® flex 项ç®åçå¯ç¨ç©ºé´çåé
æ¯å¨ flex é¡¹ç®æ°´å¹³æ¹åä¹é´ã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
</div>
.box {
display: flex;
justify-content: space-between;
border: 2px dotted rgb(96 139 168);
}
.box > * {
padding: 20px;
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
å¦æä¸»è½´æ¹å flex-direction 设置æ columnï¼é£ä¹ justify-content åé
ç空é´åæ¯çºµåçåé
ã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
</div>
.box {
display: flex;
flex-direction: column;
justify-content: space-between;
height: 300px;
border: 2px dotted rgb(96 139 168);
}
.box > * {
padding: 20px;
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
对é½å书忍¡å¼
è®°å¾è¿äºææç坹齿¹æ³ï¼å±æ§å¼ flex-start å flex-end æ¯å书忍¡å¼çå½±åçã妿 justify-content ç弿¯ flex-start èå·²ä½ ç书忍¡å¼æ¯ä»å·¦å°å³çè¯ï¼é£ä¹ flex items å°±ä¼ä» flex container ç左边å¼å§æåã

åä¹ï¼åä¼ flex 项ç®å°±ä¼ä» flex 容å¨çå³è¾¹å¼å§æåã

ä¸é¢çä¾åå° direction 屿§å¼è®¾æ rtl 强è¡è®© flex 项ç®ä»å³å°å·¦æåï¼ä½ å¯ä»¥ç§»é¤è¿ä¸ªå±æ§å¼æè
æ¹å justify-content çå¼ï¼ç仿¯å¦ä½å½±å flex 项ç®çæåæ¹åçã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
</div>
.box {
direction: rtl;
display: flex;
justify-content: flex-end;
border: 2px dotted rgb(96 139 168);
}
.box > * {
padding: 20px;
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
对é½å flex-direction
å¦æä½ æ¹å flex-direction 屿§ï¼ä¸»è½´èµ·å§çº¿ä¹ä¼æ¹åââä¾å¦ï¼ä½¿ç¨ row-reverse ä»£æ¿ rowã
å¨ä¸é¢çä¾åéï¼å¼¹æ§é¡¹ç®å¸å±ä¸º flex-direction: row-reverse å justify-content: flex-end ãå¨ä¸ä¸ªä¹¦å模å¼ä¸ºä»å·¦å°å³çè¯è¨ä¸ï¼å¼¹æ§é¡¹ç®ä¼å¯¹é½å°å·¦è¾¹ãå°è¯å° flex-direction: row-reverse æ¹ä¸º flex-direction: rowï¼ä½ ä¼çå°å¼¹æ§é¡¹ç®ä¼å¯¹é½å°å³è¾¹ã
<div class="box">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
</div>
.box {
display: flex;
flex-direction: row-reverse;
justify-content: flex-end;
border: 2px dotted rgb(96 139 168);
}
.box > * {
padding: 20px;
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
è¿ä¼¼ä¹æä¸ç¹ä»¤äººå°æï¼éè¦è®°ä½çè§åå°±æ¯ï¼å½æ²¡æè®¾ç½® flex-direction æ¶ï¼å¼¹æ§é¡¹ç®çæåæ¹åä¸ææ¡£è¯è¨çææ¬æ²¿è¡å
è½´çæåæ¹åä¸è´ãflex-start å°±æ¯ä¸ä¸ªå¥å䏿æ¬çèµ·å§å¤ã

ä½ å¯ä»¥éè¿è®¾ç½® flex-direction: columnï¼ä½¿å¼¹æ§é¡¹ç®æ²¿çææ¡£è¯è¨çå级轴æ¹åæ¾ç¤ºã飿 ·è¯ï¼flex-start å°±æ¯ææ¬ç¬¬ä¸ä¸ªæ®µè½ç顶端起å§å¤ã

å¦æä½ å° flex-direction ç弿¹æ row-reverse æè
column-revers ï¼é£ä¹å¼¹æ§é¡¹ç®ä¼æ²¿çææ¡£è¯è¨çææ¬ä¹¦åæ¹åçç¸åæ¹åï¼ä»è½´ç尾端å¼å§æåãflex-start å°±ä¼å为轴ç尾端ãä¹å°±æ¯è¯´ï¼æ²¿çè¡å
è½´æ¶ï¼è¿ä¸ªä½ç½®å°±æ¯æ¯è¡ææ¬çæ¢è¡å¤ï¼æ²¿çå级轴æ¶ï¼å°±æ¯ææ¬æåä¸ä¸ªæ®µè½çåºé¨ã


使ç¨èªå¨çå¤è¾¹è·å¨ä¸»è½´ä¸å¯¹é½
æä»¬æ³è¦å¤ç个å«å¼¹æ§é¡¹ç®å¨ä¸»è½´ä¸ç对é½ï¼ä½æ¯æ²¡æ justify-items 屿§æè
justify-self 屿§å¯ç¨ï¼å 为弹æ§é¡¹ç®ä¼è¢«å½æä¸ä¸ªç»æ¥å¯¹é½ãç¶èï¼æä»¬å¯ä»¥ä½¿ç¨èªå¨çå¤è¾¹è·æ¥å¤çä¸äºä¸ªå«å¼¹æ§é¡¹ç®æè
ä¸ç»å¼¹æ§é¡¹ç®æ³åå
¶ä»å¼¹æ§é¡¹ç®å离å¼ç坹齿
åµã
ä¸ä¸ªå¸¸è§çæ¡ä¾æ¯å¯¼èªæ ï¼ä¸äºéè¦é¡¹ç®å³å¯¹é½ï¼èä¸ç»å
¶ä»ä¸»è¦é¡¹ç®å·¦å¯¹é½ãä½ å¯è½ä¼æ³ï¼è¿ä¸ªæ¶åå°±éè¦ä¸ä¸ª justify-self 屿§ã使¯ä¸é¢çæ
åµï¼å¦å¾æç¤ºï¼æ 3 个项ç®å¨å·¦è¾¹ï¼2 个å¨å³è¾¹ãå设å¯ä»¥å¨é¡¹ç® d ä¸è®¾ç½® justify-self çè¯ï¼é£ä¹è·å¨åé¢çé¡¹ç® e ç坹齿¹å¼ä¹ä¼åçæ¹åãå¯è½è¿æ£æ¯æä»¬æ³è¦çææï¼ä½æäºæ¶å并䏿¯ã

å¦ä¸ä¸ªåæ³æ¯ï¼åç¬æé¡¹ç® d ç margin-left 屿§è®¾ç½®æ autoãèªå¨çå¤è¾¹è·ä¼å æ®å
¨é¨çå¤ä½ç空é´ââå¨ä¸ä¸ªåä¸è®¾ç½®èªå¨çå·¦å³å¤è¾¹è·å¯ä»¥ä½¿å®å±
ä¸ã两边尽å¯è½å æ®å¤ç空é´ï¼å就被置äºä¸é´ä½ç½®äºã
å¨ä¸é¢è¿ä¸ªå¨çº¿ä¾åä¸ï¼å¼¹æ§é¡¹ç®æé»è®¤æ¹å¼ç®åå°æ²¿è¡æåï¼èæ ·å¼ç±» push æè®¾ç½®æ margin-left: autoãä½ å¯ä»¥å°è¯å é¤å®ï¼æè
æè¿ä¸ªç±»åå å°å«çå¼¹æ§é¡¹ç®ä¸ï¼ä½ ä¼çå°å®æ¯ææ ·å½±åå¼¹æ§é¡¹ç®æåçã
<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);
}
.box > * {
padding: 20px;
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
.push {
margin-left: auto;
}
æªæ¥ç Flexbox 对é½ç¹æ§
卿¬æçå¼å¤´ï¼æè§£éäº Level1 flexbox è§èä¸å½åå
å«ç对é½ç¸å
³å±æ§ä¹è¢«å
å«å¨äº Box Alignment Level3 è§èä¸ï¼è¿æå³çå°æ¥ä¼å¾å¥½å°æ©å±è¿äºå±æ§åå¼ãæä»¬å·²ç»çå°äºè¿ç§æ
åµçåçï¼æ¯å¦ï¼ä¸º align-content åjustify-content 屿§å¼å
¥space-evenlyå¼ã
Box Alignment 模åè¿å
å«å
¶ä»å建å项ä¹é´é´éçæ¹æ³ï¼æ¯å¦å¨ CSS Grid Layout ä¸å
å«ç column-gap årow-gap ç¹æ§ãè¿äºå±æ§å
å«å¨ Box Alignment è§è䏿å³çå¨å°æ¥æä»¬ä¹åºè¯¥è½å¤å¨ flex å¸å±ä¸ä½¿ç¨column-gapårow-gapï¼å¨ Firefox 63 ä¸ï¼ä½ å°å¨ flex å¸å±ä¸æ¾å°ç¬¬ä¸ä¸ªæµè§å¨å¯¹ gap 屿§çå®ç°ã
卿·±å ¥ç ç©¶ flexbox 坹齿¶ï¼æç建议æ¯åæ¶æ¥ç Grid Layout ä¸ç坹齿¹å¼ã两ç§è§èé½ä½¿ç¨ Box Alignment è§èä¸è¯¦ç»è¯´æç对é½å±æ§ãä½ å¯ä»¥å¨ MDN æç« ãBox Alignment in Grid Layoutã䏿¥ç使ç¨ç½æ ¼æ¶è¿äºå±æ§çè¡ä¸ºï¼å¹¶ä¸æè¿å¨ã Box Alignment Cheatsheetã䏿¯è¾äºè¿äºè§èä¸å¯¹é½ç工使¹å¼ã