grid-column
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2017å¹´10æâ©.
grid-column CSS 屿§æ¯ grid-column-start å grid-column-end çç®å屿§ï¼ç¨äºæå®ç½æ ¼é¡¹ç®ç大å°åä½ç½®{ éè¿ä¸ºå®çç½æ ¼ä½ç½®è´¡ç®çº¿æ¡ï¼è·¨åº¦æä¸æ·»å ä»»ä½å
容ï¼èªå¨ï¼ï¼ä»èæå®å
¶ grid areaã
å°è¯ä¸ä¸
grid-column: 1;
grid-column: 1 / 3;
grid-column: 2 / -1;
grid-column: 1 / span 2;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">One</div>
<div>Two</div>
<div>Three</div>
</div>
</section>
.example-container {
border: 1px solid #c5c5c5;
display: grid;
grid-template-columns: 1fr 1.5fr 1fr;
grid-template-rows: repeat(3, minmax(40px, auto));
grid-gap: 10px;
width: 200px;
}
.example-container > div {
background-color: rgba(0, 0, 255, 0.2);
border: 3px solid blue;
}
#example-element {
background-color: rgba(255, 0, 200, 0.2);
border: 3px solid rebeccapurple;
}
è¯æ³
妿ç»åºä¸¤ä¸ª<grid-line>å¼ï¼å®ä»¬ä¹é´ç¨â /âåéãå°grid-column-startçæ£æè®¾ç½®ä¸ºæçº¿ä¹åçå¼ï¼å¹¶å°grid-column-endçæ£æè®¾ç½®ä¸ºæçº¿ä¹åçå¼ã
æ¯ä¸ª<grid-line>å¼å¯ä»¥æå®ä¸ºï¼
- è¦ä¹æ¯
autoå ³é®å - æ
<custom-ident>å¼ - æ
<integer>å¼ - æè
<custom-ident>å<integer>ï¼ä¸¤è ä¹é´ç¨ç©ºæ ¼åé - æå
³é®å span ä¸
<custom-ident>æ<integer>æä¸¤è ä¸èµ·ä½¿ç¨ã
å¼
auto
æ¯ä¸ä¸ªå ³é®åï¼æç¤ºè¯¥å±æ§å¯¹ç½æ ¼é¡¹ç®çæ¾ç½®æ²¡æä»»ä½ä½ç¨ï¼è¡¨ç¤ºèªå¨æ¾ç½®ï¼èªå¨è·¨åº¦æé»è®¤è·¨åº¦ä¸º 1ã
<custom-ident>
妿æä¸ä¸ªå为"<custom-ident>-start"/"<custom-ident>-start"çå½åè¡ï¼åå®å°ç¬¬ä¸è¡æ·»å å°ç½æ ¼é¡¹ç®çä½ç½®ã
è¦åï¼å½åç½æ ¼åºåä¼èªå¨çæè¿ç§å½¢å¼çéå¼å½åè¡ï¼å æ¤è¯·æå®grid-column: foo;å°éæ©è¯¥å½åç½æ ¼åºåçå¼å§/ç»æè¾¹ç¼ï¼é¤éå¨å
¶ä¹åæç¡®æå®äºå¦ä¸æ¡å为foo-start / foo-endçè¡ï¼ã
å¦åï¼å°å
¶è§ä¸ºä¸<custom-ident>ä¸èµ·æå®äºæ´æ° 1ã
<integer> && <custom-ident>?
å°ç¬¬ n æ¡ç½æ ¼çº¿è´¡ç®å°ç½æ ¼é¡¹ç®çä½ç½®ã妿ç»å®ä¸ä¸ªè´æ´æ°ï¼å仿¾å¼ç½æ ¼çæ«ç«¯å¼å§ï¼åå计æ°ã
妿å°åç§°æå®ä¸º<custom-ident>ï¼åä» è®¡ç®å ·æè¯¥åç§°çè¡ãå¦ææ²¡æè¶³å¤å¤çå ·æè¯¥åç§°ç线ï¼åå宿æéå¼ç½æ ¼çº¿é½å ·æè¯¥åç§°ï¼ä»¥æ¥æ¾è¯¥ä½ç½®ã
<integer>çå¼ä¸º0æ æã
span && [ <integer> || <custom-ident> ]
å°ç½æ ¼èå´æ©å±å°è¯¥ç½æ ¼é¡¹ç®çä½ç½®ï¼ä»¥ä½¿è¯¥ç½æ ¼é¡¹ç®çç½æ ¼åºåçç¸åºè¾¹ç¼è·ç¦»ç¸å¯¹è¾¹ç¼ n è¡ã
妿å°åç§°æå®ä¸º<custom-ident>ï¼åä»
计ç®å
·æè¯¥åç§°çè¡ãå¦ææ²¡æè¶³å¤å¤çå
·æè¯¥åç§°ç线ï¼åä¸ºè®¡ç®æ¤è·¨åº¦ï¼åå®ä¸æç´¢æ¹åç¸å¯¹åºçæ¾å¼ç½æ ¼ä¾§çææéå¼ç½æ ¼çº¿åå
·æè¯¥åç§°ã
妿çç¥<integer>ï¼åé»è®¤ä¸º1ãè´æ´æ°æ 0 æ æã
å½¢å¼è¯æ³
grid-column =
<grid-line> [ / <grid-line> ]?
<grid-line> =
auto |
<custom-ident> |
[ [ <integer [-â,-1]> | <integer [1,â]> ] && <custom-ident>? ] |
[ span && [ <integer [1,â]> || <custom-ident> ] ]
示ä¾
>HTML
<div id="grid">
<div id="item1"></div>
<div id="item2"></div>
<div id="item3"></div>
</div>
CSS
#grid {
display: grid;
height: 100px;
grid-template-columns: repeat(6, 1fr);
grid-template-rows: 100px;
}
#item1 {
background-color: lime;
}
#item2 {
background-color: yellow;
grid-column: 2 / 4;
}
#item3 {
background-color: blue;
grid-column: span 2 / 7;
}
IE é®é¢
IE11 䏿¯æèªå¨æ¾ç½®ç½æ ¼é¡¹ç®ãé¤éç¨-ms-grid-columnå-ms-grid-rowæ¾å¼æ³¨éï¼å¦åææé¡¹ç®é½ä»¥ç½æ ¼ç第ä¸è¡/åç»å°¾ãå¯ä»¥ä½¿ç¨ä¸äº JavaScript æ¥å¯ç¨èªå¨æ³¨éï¼æºåå¨åºã
è§è
| Specification |
|---|
| CSS Grid Layout Module Level 2 > # placement-shorthands > |
| åå§å¼ | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
|---|---|
| éç¨å ç´ | grid items and absolutely-positioned boxes whose containing block is a grid container |
| æ¯å¦æ¯ç»§æ¿å±æ§ | å¦ |
| 计ç®å¼ | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
| å¨ç»ç±»å | 离æ£å¼ |
æµè§å¨å ¼å®¹æ§
åè§
- Related CSS properties:
grid-row,grid-row-start,grid-row-end,grid-column-start,grid-column-end - Grid Layout Guide: Line-based placement with CSS Grid
- Video tutorial: Line-based placement