ç½æ ¼å¸å±çåºæ¬æ¦å¿µ
CSS ç½æ ¼å¸å±å¼å ¥äºäºç»´ç½æ ¼å¸å±ç³»ç»ï¼å¯ç¨äºå¸å±é¡µé¢ä¸»è¦çåºåæå°åç¨æ·çé¢å ç´ ãæ¬æä»ç»äº CSS ç½æ ¼å¸å±ä¸ CSS ç½æ ¼å¸å±è§è第 1 çä¸çæ°æ¯è¯ãè¿ç¯ç®ä»ä¸æå±ç¤ºçæ¯ç§ç¹æ§ï¼å°å¨æ¬æåçå ¶ä½é¨åä¸è¯¦ç»ä»ç»ã
ä»ä¹æ¯ç½æ ¼ï¼
ç½æ ¼æ¯ä¸ç»ç¸äº¤ç水平线ååç´çº¿ï¼å®å®ä¹äºç½æ ¼çååè¡ãæä»¬å¯ä»¥å°ç½æ ¼å ç´ æ¾ç½®å¨ä¸è¿äºååè¡ç¸å ³çä½ç½®ä¸ãCSS ç½æ ¼å¸å±å ·æä»¥ä¸ç¹ç¹ï¼
åºå®çä½ç½®åå¼¹æ§ç轨éç大å°
ä½ å¯ä»¥ä½¿ç¨åºå®ç轨é尺寸åå»ºç½æ ¼ï¼æ¯å¦ä½¿ç¨åç´ åä½ãä½ ä¹å¯ä»¥ä½¿ç¨æ¯å¦ç¾åæ¯æè
ä¸é¨ä¸ºæ¤ç®çåå»ºçæ°åä½ fr æ¥å建æå¼¹æ§å°ºå¯¸çç½æ ¼ã
ç½æ ¼é¡¹ææ¾
ä½ å¯ä»¥ä½¿ç¨è¡å·ãè¡åæè æ å®ä¸ä¸ªç½æ ¼åºåæ¥ç²¾ç¡®å®ä½å ç´ ãç½æ ¼åæ¶è¿ä½¿ç¨ä¸ç§ç®æ³æ¥æ§å¶æªç»åºæç¡®ç½æ ¼ä½ç½®çå ç´ ã
å建é¢å¤çè½¨éæ¥å å«å 容
å¯ä»¥éè¿ç½æ ¼å¸å±å®ä¹æ¾å¼ç½æ ¼ãç½æ ¼å¸å±è§èéå¸¸çµæ´»ï¼å¯ä»¥å¨éè¦æ¶æ·»å é¢å¤çè¡ååãå æ¬æ·»å âä¸ä¸ªå®¹å¨è½å®¹çº³çå°½å¯è½å¤çåâçç¹æ§ã
坹齿§å¶
ç½æ ¼å å«å¯¹é½ç¹æ§ï¼å æ¤æä»¬å¯ä»¥æ§å¶é¡¹ç®æ¾å ¥ç½æ ¼åºååç坹齿¹å¼ï¼ä»¥åæ´ä¸ªç½æ ¼ç坹齿¹å¼ã
æ§å¶éå å 容
å¤ä¸ªé¡¹ç®å¯ä»¥æ¾ç½®å¨ç½æ ¼åå
æ ¼ä¸ï¼æè
åºåå¯ä»¥é¨åå°å½¼æ¤éå ãç¶åå¯ä»¥ä½¿ç¨ z-index 屿§æ¥æ§å¶éå åºåæ¾ç¤ºçä¼å
级ã
ç½æ ¼å¸å±æ¯ä¸ä¸ªå¼ºå¤§çè§èï¼å½ä¸ CSS çå ¶ä»é¨åï¼å¦å¼¹æ§çï¼ç»åä½¿ç¨æ¶ï¼å¯ä»¥å¸®å©ä½ å建以åä¸å¯è½å¨ CSS ä¸æå»ºçå¸å±ãè¿ä¸å齿¯éè¿å¨ç½æ ¼å®¹å¨ä¸å建ä¸ä¸ªç½æ ¼æ¥å¼å§çã
ç½æ ¼å®¹å¨
æä»¬éè¿å¨å
ç´ ä¸å£°æ displayï¼grid æ displayï¼inline-grid æ¥å建ä¸ä¸ªç½æ ¼å®¹å¨ã䏿¦æä»¬è¿æ ·åï¼è¿ä¸ªå
ç´ çææç´ç³»åå
ç´ å°æä¸ºç½æ ¼é¡¹ç®ã
å¨è¿ä¸ªç¤ºä¾ä¸ï¼æä¸ä¸ªç±»å为 wrapper ç div å
ç´ ä½ä¸ºå®¹å¨ï¼å
¶å
鍿äºä¸ªåå
ç´ ã
<div class="wrapper">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
</div>
æå° .wrapper ä½ä¸ºä¸ä¸ªç½æ ¼å®¹å¨ã
.wrapper {
display: grid;
}
ææç´ç³»åå
ç´ ç°å¨é½æ¯ç½æ ¼é¡¹äºãå¨ web æµè§å¨ä¸ï¼å
ç´ è½¬ä¸ºç½æ ¼é¡¹åçä¸åºä»ä¹å·®å¼ï¼å ä¸ºç½æ ¼ç»è¿äºå
ç´ å建äºä¸ä¸ªååç½æ ¼ãæ¤å»ï¼Firefox å¼åè
çï¼Developer Editionï¼å¯è½ä¼å©ä½ ä¸èä¹åãæ¤æ¶ï¼ä½ å¯è½ä¼åç°ä½¿ç¨ Firefox å¼åå·¥å
·ä¸çç½æ ¼æ£æ¥å¨é常æç¨ãå¦æä½ å¨ Firefox 䏿¥çæ¤ç¤ºä¾å¹¶æ£æ¥ç½æ ¼ï¼ä¼çå° grid å¼æè¾¹æä¸ä¸ªå°å¾æ ãåå»è¯¥å¾æ åï¼è¯¥å
ç´ ä¸çç½æ ¼å°±ä¼æ¾ç¤ºå°æµè§å¨çªå£ä¸ã

å½ä½ å¦ä¹ å¹¶ä¸ä½¿ç¨ CSS ç½æ ¼å¸å±æ¶ï¼è¿ä¸ªå·¥å ·è½è®©ä½ æ´å¥½å°äºè§£å°ä½ çç½æ ¼å¨è§è§ä¸åçäºåªäºååã
妿æä»¬æ³è®©è¿ä¸ªç¤ºä¾æ´å âç½æ ¼åâï¼æä»¬éè¦ä½¿ç¨å轨éã
ç½æ ¼è½¨é
æä»¬ä½¿ç¨ grid-template-rows å grid-template-columns 屿§å®ä¹ç½æ ¼ä¸çè¡ååãè¿äºå±æ§å®ä¹äºç½æ ¼è½¨éãç½æ ¼è½¨éï¼grid trackï¼æ¯ç½æ ¼ä¸ä»»æä¸¤æ¡ç¸é»çº¿ä¹é´ç空é´ãä¸å¾æ¾ç¤ºäºä¸ä¸ªçªåºæ¾ç¤ºç轨éââè¿æ¯ç½æ ¼ä¸ç¬¬ä¸è¡ç轨éã

éè¿ä½¿ç¨ grid-template-columns å grid-template-rows 屿§æç®åç grid æ grid-template 屿§ï¼å¯å¨æ¾å¼ç½æ ¼ä¸å®ä¹ç½æ ¼è½¨éãå¨éå¼ç½æ ¼ä¸ï¼ä¹å¯ä»¥éè¿å¨æ¾å¼ç½æ ¼ä¸å建ç轨éå¤å®ä½ç½æ ¼é¡¹æ¥å建轨éã
åºæ¬ç¤ºä¾
æå¯ä»¥éè¿æ·»å grid-template-columns 屿§å°åè½¨éæ·»å å°ä¹åç示ä¾ï¼ç¶åå®ä¹å轨éç大å°ã
æç°å¨å建äºä¸ä¸ªç½æ ¼ï¼å å«äºä¸ä¸ª 200 åç´ å®½çå轨éãåå ç´ å°å¨ç½æ ¼ä¸æ¯ä¸ªç½æ ¼åå 䏿æ¾ã
<div class="wrapper">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
</div>
.wrapper {
display: grid;
grid-template-columns: 200px 200px 200px;
}
fr åä½
轨éå¯ä»¥ä½¿ç¨ä»»ä½é¿åº¦åä½è¿è¡å®ä¹ãç½æ ¼è¿å¼å
¥äºä¸ä¸ªå¦å¤çé¿åº¦å使¥å¸®å©æä»¬åå»ºçµæ´»çç½æ ¼è½¨éãæ°ç fr åä½ä»£è¡¨ç½æ ¼å®¹å¨ä¸å¯ç¨ç©ºé´çä¸é¨åãä¸ä¸ä¸ªç½æ ¼å®ä¹å°å建ä¸ä¸ªç宽ç轨éï¼å¹¶æ ¹æ®å¯ç¨ç©ºé´ç大å°è¿è¡å¢åã
<div class="wrapper">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
</div>
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
ä¸å尺寸
å¨ä¸é¢çè¿ä¸ªç¤ºä¾ä¸ï¼æä»¬å®ä¹äºä¸ä¸ª 2fr 轨éå两个 1fr 轨éãå¯ç¨ç©ºé´è¢«åçåãå
¶ä¸ä¸¤ä»½ç»äºç¬¬ä¸ä¸ªè½¨éï¼å©ä¸ä¸¤ä¸ªè½¨éåå ä¸ä»½ã
<div class="wrapper">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
</div>
.wrapper {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
}
æ··åå¼¹æ§å°ºå¯¸åç»å¯¹å°ºå¯¸
卿åä¸ä¸ªç¤ºä¾ä¸ï¼æä»¬å°ç»å¯¹å¤§å°ç轨éä¸ fr å使··å使ç¨ãç¬¬ä¸æ¡è½¨éæ¯ 500 åç´ ï¼å æ¤ä»å¯ç¨ç©ºé´ä¸æ£é¤äºåºå®å®½åº¦ãå©ä¸ç空é´è¢«ä¸å为ä¸ï¼å¹¶ææ¯ä¾åé
ç»ä¸¤ä¸ªçµæ´»ç轨éã
<div class="wrapper">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
</div>
.wrapper {
display: grid;
grid-template-columns: 500px 1fr 2fr;
}
å¨è½¨éå表ä¸ä½¿ç¨ repeat() æ è®°
å
å«å¤ä¸ªè½¨éç大åç½æ ¼å¯ä½¿ç¨ repeat() æ è®°æ¥éå¤é¨åææ´ä¸ªè½¨éå表ãå¦ä¸æ¹çç½æ ¼å®ä¹ï¼
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
ä¹å¯åæï¼
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
Repeat æ è®°å¯ä»¥ç¨äºéå¤è½¨éå表ä¸çä¸é¨åãå¨ä¸é¢ç示ä¾ä¸æå建äºä¸ä¸ªç½æ ¼ï¼å
¶èµ·å§è½¨é为 20 åç´ ï¼æ¥çéå¤äº 6 个 1fr ç轨éï¼æååæ·»å äºä¸ä¸ª 20 åç´ ç轨éã
.wrapper {
display: grid;
grid-template-columns: 20px repeat(6, 1fr) 20px;
}
Repeat æ è®°å¯ä»¥ä¼ å
¥ä¸ä¸ªè½¨éå表ï¼å æ¤ä½ å¯ä»¥ç¨å®æ¥å建ä¸ä¸ªå¤è½¨é模å¼çéå¤è½¨éå表ãå¨ä¸ä¸ä¸ªç¤ºä¾ä¸ï¼ç½æ ¼å°æå
±è®¡ 10 个轨éï¼ä¸º 1 个 1fr 轨éåé¢è·ç 1 个 2fr 轨éï¼è¯¥æ¨¡å¼éå¤ 5 次ã
.wrapper {
display: grid;
grid-template-columns: repeat(5, 1fr 2fr);
}
éå¼åæ¾å¼ç½æ ¼
å¨å建示ä¾ç½æ ¼æ¶ï¼æä»¬ä½¿ç¨ grid-template-columns 屿§ä¸é¨å®ä¹äºå轨éï¼ä½ç½æ ¼ä¹ä¼èªè¡å建è¡ãè¿äºè¡æ¯éå¼ç½æ ¼çä¸é¨åãèæ¾å¼ç½æ ¼ç±ä½¿ç¨ grid-template-columns æ grid-template-rows å®ä¹çä»»ä½è¡ååç»æã
å¦æä½ å¨å®ä¹çç½æ ¼å¤æ¾ç½®å å®¹ï¼æè ç±äºå 容太å¤ï¼éè¦æ´å¤çç½æ ¼è½¨éï¼é£ä¹ç½æ ¼å°±ä¼å¨éå¼ç½æ ¼ä¸å建è¡ååãé»è®¤æ åµä¸ï¼è¿äºè½¨éä¼èªå¨è°æ´å¤§å°ï¼å æ¤å®ä»¬ç大å°åå³äºè½¨éå çå 容ã
ä½ è¿å¯ä»¥ä½¿ç¨ grid-auto-rows å grid-auto-columns 屿§ä¸ºå¨éå¼ç½æ ¼ä¸å建ç轨éå®ä¹è®¾å®å¤§å°ã
å¨ä¸é¢ç示ä¾ä¸æä»¬ç¨ grid-auto-rows 屿§æ¥ç¡®ä¿å¨éå¼ç½æ ¼ä¸å建çè½¨éæ¯ 200 åç´ é«ã
<div class="wrapper">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
</div>
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 200px;
}
轨é大å°å minmax
å¨è®¾ç½®æ¾å¼ç½æ ¼æå®ä¹èªå¨å建çè¡æåç大尿¶ï¼æä»¬å¯è½å¸æç»è½¨è¿¹ä¸ä¸ªæå°å°ºå¯¸ï¼ä½ä¹è¦ç¡®ä¿å®ä»¬è½æ©å±ä»¥éåºæ·»å çä»»ä½å 容ãä¾å¦ï¼æå¯è½å¸ææçè¡æ°¸è¿ä¸ä¼ç¼©å°å° 100 åç´ ä»¥ä¸ï¼ä½å¦ææçå 容é«åº¦æ©å±å° 300 åç´ ï¼é£ä¹æå¸æè¡ä¹è½æ©å±å°è¿ä¸ªé«åº¦ã
ç½æ ¼å¸å±æä¾äº minmax() 彿°æ¥è§£å³è¿ä¸ªé®é¢ãå¨ä¸ä¸ä¸ªç¤ºä¾ä¸ï¼æå¨ grid-auto-rows çå¼ä¸ä½¿ç¨äº minmax()ãè¿æå³çèªå¨å建çè¡é«åº¦æå°ä¸º 100 åç´ ï¼æå¤§ä¸º autoãä½¿ç¨ auto 表示大å°å°åå³äºå
容ç大å°ï¼å¹¶å°æä¼¸ä»¥å¨è¯¥è¡ä¸ä¸ºåå
æ ¼ä¸æé«ç项ç®çåºç©ºé´ã
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: minmax(100px, auto);
}
<div class="wrapper">
<div>ä¸</div>
<div>
äº
<p>è¿éææ´å¤å
容ã</p>
<p>使å¾è¿éé«äº 100 åç´ ã</p>
</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
</div>
ç½æ ¼çº¿
åºè¯¥æ³¨æçæ¯ï¼å½æä»¬å®ä¹ç½æ ¼æ¶ï¼æä»¬å®ä¹çæ¯ç½æ ¼è½¨éï¼è䏿¯ç½æ ¼çº¿ãç½æ ¼å¸å±ä¼ä¸ºæä»¬å建ç¼å·çç½æ ¼çº¿æ¥è®©æä»¬æ¥å®ä½æ¯ä¸ä¸ªç½æ ¼å ç´ ãä¾å¦ä¸é¢è¿ä¸ªä¸å两è¡çç½æ ¼ä¸ï¼å°±æ¥æåæ¡çºµåçç½æ ¼çº¿ã

ç½æ ¼çº¿çç¼å·é¡ºåºåå³äºæç« ç书忍¡å¼ãå¨ä»å·¦è³å³ä¹¦åçè¯è¨ä¸ï¼ç¼å·ä¸º 1 çç½æ ¼çº¿ä½äºæå·¦è¾¹ãå¨ä»å³è³å·¦ä¹¦åçè¯è¨ä¸ï¼ç¼å·ä¸º 1 çç½æ ¼çº¿ä½äºæå³è¾¹ãç½æ ¼çº¿ä¹å¯ä»¥è¢«å½åï¼æä»¬å°å¨ç¨åçæç¨ä¸çå°å¦ä½å®æè¿ä¸æä½ã
è·¨è½¨éæ¾ç½®ç½æ ¼é¡¹ç®
æä»¬å°å¨ä»¥åçæç« ä¸è¯¦ç»æ¢è®¨åºäºè¡çæ¾ç½®ãä¸é¢ç示ä¾ä»¥ç®åçæ¹å¼æ¼ç¤ºäºè¿ä¸ç¹ãæ¾ç½®é¡¹ç®æ¶ï¼æä»¬çç®æ æ¯ç½æ ¼çº¿è䏿¯ç½æ ¼è½¨éã
å¨ä¸é¢ç示ä¾ä¸ï¼æä½¿ç¨ grid-column-startãgrid-column-endãgrid-row-start å grid-row-end 屿§ï¼å°åä¸¤ä¸ªé¡¹ç®æ¾ç½®å¨ä¸å轨éç½æ ¼ä¸ãä»å·¦å°å³ï¼ç¬¬ä¸ä¸ªé¡¹ç®æ¾ç½®å¨ç¬¬ 1 åï¼å¹¶è·¨è¶å°ç¬¬ 4 åï¼å¨æä»¬ç示ä¾ä¸ï¼ç¬¬ 4 åæ¯ç½æ ¼çæå³è¾¹ä¸è¡ãå®å¼å§äºç¬¬ 1 è¡ï¼ç»æäºç¬¬ 3 è¡ï¼å æ¤è·¨è¶äºä¸¤æ¡è¡è½¨ã
第äºä¸ªé¡¹ç®ä»ç½æ ¼å第 1 è¡å¼å§ï¼è·¨è¶ä¸ä¸ªè½¨éãè¿æ¯é»è®¤è®¾ç½®ï¼å æ¤æä¸éè¦æå®ç»æ¢è¡ãå®è¿è·¨è¶äºä»ç¬¬ 3 è¡å°ç¬¬ 5 è¡ç两æ¡è¡è½¨éãå ¶ä»é¡¹ç®å°æ¾ç½®å¨ç½æ ¼ç空ç½å¤ã
<div class="wrapper">
<div class="box1">ä¸</div>
<div class="box2">äº</div>
<div class="box3">ä¸</div>
<div class="box4">å</div>
<div class="box5">äº</div>
</div>
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 100px;
}
.box1 {
grid-column-start: 1;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 3;
}
.box2 {
grid-column-start: 1;
grid-row-start: 3;
grid-row-end: 5;
}
夿³¨ï¼å«å¿äºä½ å¯ä»¥ä½¿ç¨ Firefox å¼åè å·¥å ·ä¸çç½æ ¼æ£æ¥å¨æ¥çè¿äºå ç´ æ¯å¦ä½è¢«ææ¾å¨ç½æ ¼ä¸çã
ç½æ ¼çº¿å®ä½ç®å
对äºåï¼å¯ä»¥ä½¿ç¨ grid-column å°ä¸é¢ä½¿ç¨ç宿´å¼å缩å°ä¸è¡ï¼å¯¹äºè¡ï¼å¯ä»¥ä½¿ç¨ grid-row å°å
¶å缩å°ä¸è¡ãä¸é¢ç示ä¾å°æä¾ä¸åé¢ä»£ç ç¸åçå®ä½ï¼ä½ CSS å
容è¦å°å¾å¤ãæçº¿å符ï¼/ï¼åé¢çå¼ä¸ºèµ·å§ç½æ ¼çº¿ï¼æçº¿å符ï¼/ï¼åé¢çå¼ä¸ºç»æ¢ç½æ ¼çº¿ã
å¦æç½æ ¼é¡¹åªè·¨è¶äºä¸ä¸ªè½¨éï¼å¯ä»¥çç¥ç»æ¢å¼ã
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 100px;
}
.box1 {
grid-column: 1 / 4;
grid-row: 1 / 3;
}
.box2 {
grid-column: 1;
grid-row: 3 / 5;
}
ç½æ ¼åå
ç½æ ¼åå ï¼grid cellï¼æ¯ç½æ ¼é¡¹ä¸æå°çåä½ï¼ä»æ¦å¿µä¸æ¥è®²å ¶å®å®åè¡¨æ ¼çä¸ä¸ªåå æ ¼å¾åãç°å¨åçåæä»¬åé¢çä¸ä¸ªä¾åï¼ä¸æ¦ä¸ä¸ªç½æ ¼å ç´ è¢«å®ä¹ä¸ºç¶çº§å ç´ ï¼é£ä¹å®çå级å ç´ å°ä¼æå卿¯ä¸ªäºå å®ä¹å¥½çç½æ ¼åå ä¸ãå¨ä¸é¢çå¾ä¸ï¼æä¼å°ç¬¬ä¸ä¸ªç½æ ¼åå ä½é«äº®å¤çã

ç½æ ¼åºå
项ç®å¯ä»¥æè¡æåè·¨è¶ä¸ä¸ªæå¤ä¸ªåå æ ¼ï¼è¿æ ·å°±å½¢æäºä¸ä¸ªç½æ ¼åºåï¼grid areaï¼ãç½æ ¼åºåå¿ é¡»æ¯ç©å½¢çï¼ä¾å¦ä¸è½å建 L å½¢åºåï¼ãçªåºæ¾ç¤ºçç½æ ¼åºåè·¨è¶äºä¸¤æ¡è¡è½¨éå两æ¡å轨éã

ç½æ ¼é´è·
ç½æ ¼åå
æ ¼ä¹é´ç横åé´è·ï¼gutterï¼æçºµåé´è·ï¼alleyï¼å¯ä»¥ä½¿ç¨ column-gap å row-gap 屿§æç®å gap æ¥å建ãå¨ä¸é¢ç示ä¾ä¸ï¼æå¨åä¸åä¹é´åå»ºäº 10 åç´ çé´éï¼å¨è¡ä¸è¡ä¹é´åå»ºäº 1em çé´éã
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
column-gap: 10px;
row-gap: 1em;
}
夿³¨ï¼å½ç½æ ¼å¸å±é¦æ¬¡å¨æµè§å¨ä¸ä½¿ç¨æ¶ï¼column-gapãrow-gap å gap é½å¸¦æ grid- åç¼ï¼åå«ç§°ä¸º grid-column-gapãgrid-row-gap å grid-gapãç°å¨ï¼æææµè§å¨é½æ¯ææ åç¼å¼ï¼ä½åç¼çæ¬å°ä½ä¸ºå«åä¿çï¼ä»¥ä¾¿å®å
¨ä½¿ç¨ã
<div class="wrapper">
<div>ä¸</div>
<div>äº</div>
<div>ä¸</div>
<div>å</div>
<div>äº</div>
</div>
ç½æ ¼é´è·ä½¿ç¨çä»»ä½ç©ºé´é½ä¼å¨åé
ç»çµæ´»é¿åº¦ç fr 轨éä¹å计ç®å¨å
ï¼èä¸ç½æ ¼é´è·ç大å°ä¸å¸¸è§ç½æ ¼è½¨éç¸åï¼ä½ä¸è½å¨é´è·ä¸æ¾ç½®ä»»ä½ä¸è¥¿ãå°±åºäºè¡çå®ä½èè¨ï¼ç½æ ¼é´è·å°±å䏿¡ç²çº¿ã
åµå¥ç½æ ¼
ç½æ ¼é¡¹å¯ä»¥ä¹æä¸ºä¸ä¸ªç½æ ¼å®¹å¨ãå¨ä¸é¢ç示ä¾ä¸ï¼æä½¿ç¨äºä¹åå建ç䏿 ç½æ ¼ï¼å¹¶æ¾ç½®äºä¸¤ä¸ªé¡¹ç®ã卿¬ä¾ä¸ï¼ç¬¬ä¸ä¸ªé¡¹ç®æä¸äºå项ç®ãç±äºè¿äºé¡¹ç®ä¸æ¯ç½æ ¼çç´æ¥å项ï¼å®ä»¬ä¸åä¸ç½æ ¼å¸å±ï¼å æ¤æ¾ç¤ºå¨æ£å¸¸çææ¡£æµä¸ã

ä¸ä½¿ç¨åç½æ ¼çåµå¥
妿æå° box1 设置为 display: gridï¼æå°±å¯ä»¥ç»å®ä¸ä¸ªè½¨éå®ä¹ï¼å®ä¹ä¼åæä¸ä¸ªç½æ ¼é¡¹ãç¶åï¼é¡¹ç®å°±ä¼æåå¨è¿ä¸ªæ°ç½æ ¼ä¸ã
.box1 {
grid-column-start: 1;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 3;
display: grid;
grid-template-columns: repeat(3, 1fr);
}
* {
box-sizing: border-box;
}
.wrapper {
border: 2px solid #f76707;
border-radius: 5px;
gap: 3px;
background-color: #fff4e6;
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.box {
border: 2px solid #ffa94d;
border-radius: 5px;
background-color: #ffd8a8;
padding: 1em;
color: #d9480f;
}
.box1 {
grid-column: 1 / 4;
}
.nested {
border: 2px solid #ffec99;
border-radius: 5px;
background-color: #fff9db;
padding: 1em;
}
å¨è¿ç§æ
åµä¸ï¼åµå¥ç½æ ¼ä¸ç¶ç½æ ¼æ²¡æä»»ä½å
³ç³»ãæ£å¦ä½ å¨ç¤ºä¾ä¸çå°çï¼å®æ²¡æç»§æ¿ç¶ç½æ ¼ç gapï¼åµå¥ç½æ ¼ä¸çè¡ä¹æ²¡æä¸ç¶ç½æ ¼ä¸çè¡å¯¹é½ã
åç½æ ¼
é¤äºå¸¸è§ç½æ ¼å¤ï¼åç½æ ¼ï¼subgridï¼è¿è½è®©æä»¬å建åµå¥ç½æ ¼ï¼ä½¿ç¨ç¶ç½æ ¼ç轨éå®ä¹ã
è¦ä½¿ç¨å®ä»¬ï¼æä»¬å¯ä»¥ç¼è¾ä¸è¿°åµå¥ç½æ ¼ç¤ºä¾ï¼å° grid-template-columns: repeat(3,1fr) ç轨éå®ä¹æ´æ¹ä¸º grid-template-columns: subgridãåµå¥ç½æ ¼å°±ä¼æ²¿ç¨ç¶ç½æ ¼è½¨éæ¥å¸å±é¡¹ç®ã
.box1 {
grid-column-start: 1;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 3;
display: grid;
grid-template-columns: subgrid;
}
ä½¿ç¨ z-index æ§å¶å±çº§
ç½æ ¼é¡¹å¯ä»¥å æ®åä¸åå
æ ¼ï¼å¨è¿ç§æ
åµä¸ï¼æä»¬å¯ä»¥ä½¿ç¨ z-index 屿§æ¥æ§å¶éå 项çå å 顺åºã
ä¸ä½¿ç¨ z-index çéå
妿æä»¬åå°æè¡å·å®ä½é¡¹ç®ç示ä¾ï¼å°±å¯ä»¥æ¹åè¿ç§æ¹æ³ï¼ä½¿ä¸¤ä¸ªé¡¹ç®éå ã
<div class="wrapper">
<div class="box box1">ä¸</div>
<div class="box box2">äº</div>
<div class="box box3">ä¸</div>
<div class="box box4">å</div>
<div class="box box5">äº</div>
</div>
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 100px;
}
.box1 {
grid-column-start: 1;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 3;
}
.box2 {
grid-column-start: 1;
grid-row-start: 2;
grid-row-end: 4;
}
ç½æ ¼é¡¹ç® box2 ç°å¨è¦çäº box1 ä¹ä¸ï¼å 为å®å¨æºæä»¶é¡ºåºä¸æå¨åé¢ã
æ§å¶é¡ºåº
æä»¬å¯ä»¥å¨ç½æ ¼é¡¹ç®åçéå æ¶ä½¿ç¨ z-index 屿§æ§å¶éå ç顺åºââå°±åæ¾ç½®ç½æ ¼é¡¹ç®ä¸æ ·ã妿æä»¬ç» box2 设å®ä¸ä¸ªä½äº box1 ç z-index å¼çè¯ï¼box2 å°ä¼æ¾ç¤ºå¨ box1 ç䏿¹ã
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 100px;
}
.box1 {
grid-column-start: 1;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 3;
z-index: 2;
}
.box2 {
grid-column-start: 1;
grid-row-start: 2;
grid-row-end: 4;
z-index: 1;
}
ä¸ä¸æ¥
卿¬æä¸ï¼æä»¬å¿«éäºè§£äºç½æ ¼å¸å±çåç§å¯è½æ§ãæ¢ç´¢å¹¶ç©è½¬ä»£ç 示ä¾ï¼ç¶åè¿å ¥æ¬æåçä¸ä¸é¨åï¼å¨è¿éæä»¬å°çæ£å¼å§ææ CSS ç½æ ¼å¸å±çç»èã