CSS ç½æ ¼ä¸åºäºçº¿çå®ä½
卿¢è®¨ç½æ ¼å¸å±çåºç¡æ¦å¿µä¸æä¸ï¼æä»¬äºè§£äºå¦ä½ä½¿ç¨çº¿ç¼å·æ¥æåå ç´ ï¼æ¬æåä¼å ¨é¢æ¢ç´¢è¿ä¸ªåºç¡ç¹æ§å¦ä½å·¥ä½ã
äºè§£ç¼å·çº¿æ¯æå¥½çæ¢ç´¢ç½æ ¼å¸å±æ¹å¼çèµ·ç¹ï¼å½ä½ 使ç¨ç½æ ¼å¸å±æ¶ï¼ç¼å·çº¿æ»æ¯åå¨ãè¿äºçº¿ä» 1 å¼å§æè¡ååç¼å·ãè¦æ³¨æçæ¯ç½æ ¼æ¯æ ¹æ®ä¹¦åæ¹åæ¥ç¼å·çãå¨åè±æè¿æ ·ä»å·¦è³å³ä¹¦åçè¯è¨ä¸ï¼ç½æ ¼çº¿ç 1 æ¯æå·¦è¾¹ç线ãå½ä½¿ç¨ä»å³è³å·¦ä¹¦åçè¯è¨æ¶ï¼ç½æ ¼çº¿ 1 å°±æ¯æå³è¾¹ç线ãæä»¬ä¼å¨ä¹åçæç« 䏿·±å ¥æ¢è®¨ä¹¦å模å¼åç½æ ¼é´ç交äºã
åºç¡ç¤ºä¾
å¨è¿ä¸ªé常ç®åçä¾åä¸ï¼æä»¬ä½¿ç¨äº 3 è¡ 3 åç导轨ï¼ä»èæ¯ä¸ªæ¹å䏿们æ 4 æ¡çº¿ã
ç½æ ¼å®¹å¨ä¸æ 4 个åå ç´ ã妿æä»¬ä¸å®ä¹å®ä»¬çä½ç½®ï¼å®ä»¬ä¼æç §èªå¨å®ä½è§åå¸å±ï¼å³å 4 个åå æ ¼ä¸å 1 个å ç´ ãä½ å¯ä½¿ç¨ Firefox Grid Highlighter æ¥çç½æ ¼æ¯å¦ä½å®ä¹è¡ååçã

.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 100px);
}
<div class="wrapper">
<div class="box1">One</div>
<div class="box2">Two</div>
<div class="box3">Three</div>
<div class="box4">Four</div>
</div>
使ç¨çº¿ç¼å·å®ä½å ç´
æä»¬å¯ä»¥ä½¿ç¨åºäºçº¿çå®ä½æ§å¶å ç´ å¨ç½æ ¼ä¸çä½ç½®ãæ¯å¦ææ³è¦ç¬¬ä¸ä¸ªå ç´ ä»ç½æ ¼çæå·¦å¼å§ï¼å 1 个å导轨ãå®è¿åºè¯¥ä»ç¬¬ 1 è¡çº¿å¼å§ï¼å»¶ä¼¸è³ç¬¬ 4 è¡çº¿ï¼
.box1 {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 4;
}
å½ä½ 为æäºå ç´ å®ä½ï¼å©ä¸çå ç´ ä¼ç»§ç»æç §èªå¨å®ä½è§åå®ä½ãæä»¬ä¼å¨ä»¥åçæç« ä¸ä»ç»è¿äºè§åï¼ä½ç°å¨ä½ å¯ä»¥çå°ç½æ ¼å¼å§ææªå®ä½çå ç´ æ¾å ¥ç©ºçåå æ ¼ã
å¨é个å®ä¹å ç´ åï¼æä»¬æææ 4 个å ç´ é½å¡«å å°äºç½æ ¼ä¸ã注æï¼æä»¬å¯ä»¥ç空ä¸äºåå æ ¼ãç½æ ¼å¸å±çä¸ä¸ªä¼å¿æ¯ï¼æ éç»å ç´ å¨å´å ä¸ margin æ¥é»æ¢ææ¡£æµèªå¨å¡«è¡¥ç©ºç½ï¼å°±è½å®ç°è®¾è®¡ä¸ççç½åºåã
<div class="wrapper">
<div class="box1">One</div>
<div class="box2">Two</div>
<div class="box3">Three</div>
<div class="box4">Four</div>
</div>
.box1 {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 4;
}
.box2 {
grid-column-start: 3;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 3;
}
.box3 {
grid-column-start: 2;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 2;
}
.box4 {
grid-column-start: 2;
grid-column-end: 4;
grid-row-start: 3;
grid-row-end: 4;
}
grid-column å grid-row çç®å
æä»¬ç¨äºä¸å°ä»£ç å®ä½æ¯ä¸ªå
ç´ ï¼ä½ åºè¯¥ä¸ä¼æè®¶æç®åãgrid-column-start å grid-column-end 屿§å¯ä»¥å并为 grid-columnãgrid-row-start å grid-row-end åå并为 grid-rowã
<div class="wrapper">
<div class="box1">One</div>
<div class="box2">Two</div>
<div class="box3">Three</div>
<div class="box4">Four</div>
</div>
.box1 {
grid-column: 1 / 2;
grid-row: 1 / 4;
}
.box2 {
grid-column: 3 / 4;
grid-row: 1 / 3;
}
.box3 {
grid-column: 2 / 3;
grid-row: 1 / 2;
}
.box4 {
grid-column: 2 / 4;
grid-row: 3 / 4;
}
é»è®¤è·¨åº¦
å¨ä¸ä¾ä¸ï¼ä¸ºäºå±ç¤ºè¿äºå±æ§ï¼æä»¬æå®äºæ¯ä¸ªç»æè¡çº¿åå线ï¼ä½å®é
ä¸å¦æä¸ä¸ªå
ç´ åªå»¶ä¼¸ä¸ä¸ªè½¨éçè¯ï¼ä½ å¯ä»¥çç¥ grid-column-end æ grid-row-end å¼ãå
ç´ é»è®¤å»¶ä¼¸ä¸ä¸ªè½¨éã
é»è®¤è·¨åº¦çæ®éåæ³
æä»¬æåç示ä¾çæ®é忳伿¯è¿æ ·ï¼
<div class="wrapper">
<div class="box1">One</div>
<div class="box2">Two</div>
<div class="box3">Three</div>
<div class="box4">Four</div>
</div>
.box1 {
grid-column-start: 1;
grid-row-start: 1;
grid-row-end: 4;
}
.box2 {
grid-column-start: 3;
grid-row-start: 1;
grid-row-end: 3;
}
.box3 {
grid-column-start: 2;
grid-row-start: 1;
}
.box4 {
grid-column-start: 2;
grid-column-end: 4;
grid-row-start: 3;
}
é»è®¤è·¨åº¦çç®å
å½çç¥äºè·¨è¶ä¸ä¸ªè½¨éçå ç´ çææ å第äºä¸ªå¼ï¼æä»¬çç®åå伿¯è¿æ ·ï¼
<div class="wrapper">
<div class="box1">One</div>
<div class="box2">Two</div>
<div class="box3">Three</div>
<div class="box4">Four</div>
</div>
.box1 {
grid-column: 1;
grid-row: 1 / 4;
}
.box2 {
grid-column: 3;
grid-row: 1 / 3;
}
.box3 {
grid-column: 2;
grid-row: 1;
}
.box4 {
grid-column: 2 / 4;
grid-row: 3;
}
grid-area 屿§
æä»¬å¯ä»¥æ´è¿ä¸æ¥ï¼ç»æ¯ä¸ªå
ç´ åªå®ä¹ä¸ä¸ªå±æ§ grid-areaãå¼ç顺åºå¦ä¸
- grid-row-start
- grid-column-start
- grid-row-end
- grid-column-end
<div class="wrapper">
<div class="box1">One</div>
<div class="box2">Two</div>
<div class="box3">Three</div>
<div class="box4">Four</div>
</div>
.box1 {
grid-area: 1 / 1 / 4 / 2;
}
.box2 {
grid-area: 1 / 3 / 3 / 4;
}
.box3 {
grid-area: 1 / 2 / 2 / 3;
}
.box4 {
grid-area: 3 / 2 / 4 / 4;
}
grid-area çå¼ç顺åºçèµ·æ¥å¯è½æç¹å¥æªï¼æ¯å¦è¯´å®æ£å¥½åå®ä¹ margin å padding çç®åçå¼ç顺åºç¸åãä½å¦æè¯´æ¯å 为å®ä¸ CSS 书忍¡å¼è§èä¸ç书忹åç¸å
³å°±ä¸é¾çè§£äºãæä»¬ä¼å¨ä¹åçæç« 䏿¢è®¨ç½æ ¼ä¸ä¹¦å模å¼çå
³ç³»ï¼ä½æä»¬æ 4 ä¸ªä¹¦åæµå
³èçæ¹åï¼
- åèµ·å§ï¼block-startï¼
- åç»æï¼block-endï¼
- è¡èµ·å§ï¼inline-startï¼
- è¡ç»æï¼inline-endï¼
æä»¬ç°å¨ä½¿ç¨çæ¯è±è¯ï¼ä¸ç§ä»å·¦è³å³ä¹¦åçè¯è¨ãåèµ·å§å°±æ¯ç½æ ¼å®¹å¨ç顶端è¡çº¿ï¼åç»æå°±æ¯åºç«¯è¡çº¿ãè¡èµ·å§æ¯å·¦ç«¯å线ï¼å 为è¡èµ·å§ä¸å½å书忍¡å¼çèµ·ç¹ä¸è´ï¼è¡ç»æå°±æ¯ç½æ ¼å³ç«¯å线ã
å½æä»¬ç¨ grid-area 屿§æ¥å®ä¹ç½æ ¼åºåæ¶ï¼æä»¬å
å®ä¹åèµ·å§ï¼block-startï¼åè¡èµ·å§ï¼inline-startï¼ï¼ç¶ååå®ä¹åç»æï¼block-endï¼åè¡ç»æï¼inline-endï¼ãèµ·åï¼æä»¬å¯è½ä¼å ä¸ºä¹ æ¯äºé¡¶ãå³ãåºãå·¦ç屿§å®ä¹é¡ºåºï¼è§å¾è¿ä¸ªé¡ºåºå¥æªï¼ä½å½ä»ç½ç«ç书忍¡å¼æå¤ä¸ªæ¹åçè§åº¦æèï¼è¿å°±æ¾å¾åçäºã
åæ¹å计æ°
æä»¬ä¹å¯ä»¥ä»è¡ååç»æçº¿å¼å§åæ¹å计æ°ï¼å¯¹äºè±è¯æ¥è¯´å°±æ¯å³ç«¯çå线ååºç«¯çè¡çº¿ãè¿äºçº¿ä¼è¢«è®°ä¸º -1ï¼ç¶åä½ å¯ä»¥ä»è¿å¾åæ°ï¼æä»¥åæ°ç¬¬ 2 æ¡çº¿ä¼è¢«è®°ä¸º -2ãå¼å¾æ³¨æçæ¯æå䏿¡çº¿æ¯ææ¾å¼å®ä¹ç½æ ¼çæå䏿¡çº¿ï¼å³ç± grid-template-columns å grid-template-rows å®ä¹çç½æ ¼ï¼å¹¶ä¸æéå¼å®ä¹ç½æ ¼çå å
¥çè¡åå纳å
¥èèã
ä¸é¢è¿ä¸ªç¤ºä¾ä¸ï¼æä»¬éè¿ä»å³ç«¯ååºç«¯å¼å§å®ä¹å¸å±ï¼æä¹åç示ä¾çå¸å±ç¿»è½¬äºã
<div class="wrapper">
<div class="box1">One</div>
<div class="box2">Two</div>
<div class="box3">Three</div>
<div class="box4">Four</div>
</div>
.box1 {
grid-column-start: -1;
grid-column-end: -2;
grid-row-start: -1;
grid-row-end: -4;
}
.box2 {
grid-column-start: -3;
grid-column-end: -4;
grid-row-start: -1;
grid-row-end: -3;
}
.box3 {
grid-column-start: -2;
grid-column-end: -3;
grid-row-start: -1;
grid-row-end: -2;
}
.box4 {
grid-column-start: -2;
grid-column-end: -4;
grid-row-start: -3;
grid-row-end: -4;
}
使å ç´ è·¨è¶æ´ä¸ªç½æ ¼
æ¥æä»å¼å§è®¡æ°å仿«å°¾è®¡æ°è¿ä¸¤ç§å®ä½æ¹æ³ä½¿å¾ä½¿ä¸ä¸ªå ç´ è·¨è¶æ´ä¸ªç½æ ¼åå¾å¾æ¹ä¾¿ï¼
.item {
grid-column: 1 / -1;
}
é´è·
CSS ç½æ ¼è§èå å
¥äºç¨ column-gap å row-gap 屿§å®ä¹åé´è·åè¡é´è·çè½åãè¿ä¸¤ä¸ªå±æ§çè¡ä¸ºåå¤åå¸å±ä¸ç column-gap 屿§å¾åã
夿³¨ï¼å¨æµè§å¨é¦æ¬¡å¼å
¥ç½æ ¼å±æ§ column-gapãrow-gap å gap æ¶ï¼å
·æ grid- åç¼ãå嫿¯ grid-column-gapãgrid-row-gap å grid-gapã
æµè§å¨æ£å¨æ´æ°å®ä»¬ç渲æå¼æï¼ä»¥å é¤è¿ä¸åç¼ï¼ä½æ¯æºå¸¦æåç¼ççæ¬å°ä»¥å«åçå½¢å¼è¿è¡ç»´æ¤ï¼ä½¿å¾å®ä»¬å¯ä»¥è¢«å®å ¨å°ä½¿ç¨ã
é´è·åªåºç°å¨ç½æ ¼è½¨éä¸è½¨éä¹é´ï¼å®ä»¬å¹¶ä¸ä¼åºç°å¨ç½æ ¼å®¹å¨çåå¨ãéè¿å¨ç½æ ¼å®¹å¨ä¸å®ä¹è¿äºå±æ§ï¼æä»¬ç»ä¸ä¾å ä¸äºé´è·ï¼
<div class="wrapper">
<div class="box1">One</div>
<div class="box2">Two</div>
<div class="box3">Three</div>
<div class="box4">Four</div>
</div>
.box1 {
grid-column: 1;
grid-row: 1 / 4;
}
.box2 {
grid-column: 3;
grid-row: 1 / 3;
}
.box3 {
grid-column: 2;
grid-row: 1;
}
.box4 {
grid-column: 2 / 4;
grid-row: 3;
}
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 100px);
column-gap: 20px;
row-gap: 1em;
}
ç½æ ¼é´è·ç®å
è¿ä¸¤ä¸ªå±æ§å¯ä»¥ç¨ gap ç®åãå¦æä½ åªç»åºä¸ä¸ªå¼ï¼é£è¿ä¸ªå¼ä¼åæ¶åºç¨äºè¡é´è·ååé´è·ãå¦æä½ ç»äºä¸¤ä¸ªå¼ï¼ç¬¬ä¸ä¸ªä¼è¢«ç¨äº row-gapï¼ç¬¬äºä¸ªåä¼è¢«ç¨äº column-gapã
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 100px);
gap: 1em 20px;
}
ä»åºäºçº¿å®ä½çè§åº¦æ¥è¯´ï¼é´è·çè¡ä¸ºå°±åæ¯ä½¿åºçº¿åå¾ç¹å«å®½ãææä»è¿æ¡çº¿å¼å§çä¸è¥¿ä¼ä»é´è·ç»æçå°æ¹å¼å§ï¼ä½ å¹¶ä¸è½å®ä½ä¹ä¸è½æ¾ä»»ä½ä¸è¥¿å°è¿ä¸ªé´è·ç空é´ä¸ãå¦æä½ å¸æå¾å°è¡ä¸ºå轨éè¡ä¸ºç¸ä¼¼çé´è·ï¼ä½ å½ç¶å¯ä»¥å®ä¹è½¨éæ¥ä½ä¸ºé´è·ã
ä½¿ç¨ span å
³é®å
é¤äºâèµ·å§çº¿ä¸ç»æçº¿âçå®ä½æ¹æ³ï¼ä½ è¿å¯ä»¥ä½¿ç¨âèµ·å§çº¿ä¸è·¨è¶è½¨éæ°éâçå®ä½æ¹æ³
<div class="wrapper">
<div class="box1">One</div>
<div class="box2">Two</div>
<div class="box3">Three</div>
<div class="box4">Four</div>
</div>
.box1 {
grid-column: 1;
grid-row: 1 / span 3;
}
.box2 {
grid-column: 3;
grid-row: 1 / span 2;
}
.box3 {
grid-column: 2;
grid-row: 1;
}
.box4 {
grid-column: 2 / span 2;
grid-row: 3;
}
ä½ ä¹å¯ä»¥å¨ grid-row-start/grid-row-end å grid-column-start/grid-column-end 屿§ä¸ä½¿ç¨ span å
³é®åãæ¥ä¸æ¥ä¸¤ä¸ªä¾åä¼åå»ºåæ ·çç½æ ¼ã第ä¸ä¸ªä¾åä¸æä»¬è®¾å®äºèµ·å§è¡ï¼ç¶å说æä»¬æ³ç»æçº¿å¨è·¨è¶ 3 æ¡çº¿ä¹åãé£è¿ä¸ªå
ç´ å°±ä¼ä» 1 å·çº¿å¼å§ï¼è·¨è¶ 3 æ¡çº¿ï¼å° 4 å·çº¿ç»æã
.box1 {
grid-column-start: 1;
grid-row-start: 1;
grid-row-end: span 3;
}
第äºä¸ªä¾åä¸ï¼æä»¬å®ä¹äºç»æè¡çº¿ï¼ç¶å设置起å§çº¿ä¸ºè·¨è¶ 3 æ¡çº¿ãæå³çè¿ä¸ªå ç´ ä¼ä»æå®ç线å¾ä¸è·¨è¶ 3 æ¡çº¿ãè¿ä¸ªå ç´ ä¼ä» 4 å·çº¿å¼å§ï¼è·¨è¶ 3 æ¡çº¿å° 1 å·çº¿ã
.box1 {
grid-column-start: 1;
grid-row-start: span 3;
grid-row-end: 4;
}
为äºçæåºäºçº¿çå®ä½æ¹å¼ï¼ä½ å¯ä»¥å°è¯ç¨ç½æ ¼å¸ç½®å 个å宽ä¸åçå ç´ æ¥å®ç°ä¸äºå¸¸è§å¸å±ãè®°ä½ï¼å¦æä½ 没æç»ææå ç´ å®ä½ï¼é£äºæ²¡è¢«å®ä½çå ç´ å°±ä¼æç §èªå¨å®ä½è§åå®ä½ãè¿ä¹åçç»æå¯è½æ°å¥½åä½ çç®æ 䏿 ·ï¼ä½å¦æä¸äºå ç´ å¨ä½ 颿ä¹å¤çå°æ¹åºç°ï¼å æ£æ¥ä¸ä¸ä½ ææ²¡æç»å®å®ä½ã
åè ï¼è®°ä½ä½ æç¡®å®ä½çå ç´ æ¯å¯ä»¥äºç¸éå çãææ¶ä½ è½ç¨è¿ç¹åé ä¸äºæè¶£çææï¼ä½ææ¶ä¹ä¼å ä¸ºä½ å®ä½éäºçº¿è导è´ä¸æ£ç¡®çéå ãFirefox Grid Highlighter å¯ä»¥å¨ä½ å¦ä¹ æ¶ç»ä½ 帮å©ï¼ç¹å«æ¯å½ä½ çç½æ ¼æ¯è¾å¤ææ¶ã