CSS gap ããããã£
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2017å¹´10æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
gap 㯠CSS ã®ä¸æ¬æå®ããããã£ã§ãè¡ãåã®éã®ééï¼æºï¼ã段çµã¿ããã¬ãã¯ã¹ãã°ãªããã³ã³ããã¼ã«é©ç¨ãã¾ãã
試ãã¦ã¿ã¾ããã
gap: 0;
gap: 10%;
gap: 1em;
gap: 10px 20px;
gap: calc(20px + 10%);
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
<div>Five</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
grid-template-columns: 1fr 1fr;
width: 200px;
}
#example-element > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
æ§æè¦ç´ ã®ããããã£
ãã®ããããã£ã¯ä»¥ä¸ã® CSS ããããã£ã®ä¸æ¬æå®ã§ãã
æ§æ
/* ãã¼ã¯ã¼ãå¤ */
gap: normal;
/* åä¸ã®å¤ */
gap: 20px;
gap: 1em;
gap: 3vmin;
gap: 0.5cm;
gap: 16%;
gap: 100%;
gap: calc(10% + 20px);
/* 2 ã¤ã®å¤ */
gap: 20px 10px;
gap: 1em 0.5em;
gap: 3vmin 2vmax;
gap: 0.5cm 2mm;
gap: 16% 100%;
gap: 21px 82%;
gap: calc(20px + 10%) calc(10% - 5px);
/* ã°ãã¼ãã«å¤ */
gap: inherit;
gap: initial;
gap: revert;
gap: revert-layer;
gap: unset;
å¤
normal-
段çµã¿ã³ã³ããã¼ã§ã¯
1emããã以å¤ã®ãã¹ã¦ã®ã³ã³ããã¹ãã§ã¯0ã¨ãªãã¾ãã <length>-
ééã®å¤§ããã§ãéè² ã®
<length>å¤ã§ãã <percentage>-
ãã®æ¬¡å ã«ãããã³ã³ããã¼è¦ç´ ã®ã³ã³ãã³ãããã¯ã¹ã®ãµã¤ãºã«å¯¾ããééã®å¤§ããããéè² ã®
<percentage>å¤ã¨ãã¦è¡¨ãããã®ã§ãã
解説
gap ããããã£ã¯ãåéã»è¡éã®ééãå®ç¾©ãããã®ã§ããã®å¹æã¯ãã³ã³ããã¼ãã°ãªããã³ã³ããã¼ããã¬ãã¯ã¹ããã¯ã¹ã³ã³ããã¼ã段çµã¿ã¬ã¤ã¢ã¦ãã³ã³ããã¼ã®ã©ãã§ãããã«ãã£ã¦ç°ãªãã¾ãã
ããã¯ä¸æ¬æå®ããããã£ã§ã<'row-gap'> ã®å¤ã¨ãã¦æå®ãããå¿
è¦ã«å¿ãã¦ãã®å¾ã« <'column-gap'> ã®å¤ãç¶ãã¾ãã両æ¹ã®ãµãããããã£ã®ããã©ã«ãå¤ã¯ normal ã§ãããå¤ã 1 ã¤ãã宣è¨ããã¦ããªãå ´åã¯ããã®å¤ã両æ¹ã«é©ç¨ããã¾ãã<'row-gap'> 㨠<'column-gap'> ã¯ããããã <length>ã<percentage>ãã¾ãã¯ãã¼ã¯ã¼ã normal ã¨ãã¦æå®ãã¾ãã
ãã¼ã»ã³ãå¤ã«ããééã®å¤ã¯ã常ã«ã³ã³ããã¼è¦ç´ ã®ã³ã³ãã³ãããã¯ã¹ã®ãµã¤ãºãåºæºã«è¨ç®ããã¾ããã³ã³ããã¼ã®ãµã¤ãºã確å®ãã¦ããå ´åããã®åä½ã¯æç¢ºã«å®ç¾©ããã¦ãããã¬ã¤ã¢ã¦ãã¢ã¼ããåããä¸è²«ãã¦ãã¾ãã
çæãããééã¯ã空ã®ã¢ã¤ãã ããã©ãã¯ã®ããã«ãæå®ãããµã¤ãºã®å¹
ãé«ããæã£ã空ã®ç©ºéãçæãã¾ããè¦ç´ éã®ç®ã«è¦ãã空éã¯æå®ããã gap ã®å¤ã¨ã¯ç°ãªãããããã¾ããããã¼ã¸ã³ãããã£ã³ã°ãåé
é
ç½®ã«ãã£ã¦ã gap ãæ±ºå®ããå¤ãããè¦ç´ éã®ééãåºãããããããªãããã§ãã
ééã«ã¯ãè£
飾ã¨ãã¦ç®ã«è¦ããåºåãç·ãå¼ããã¨ãã§ãã¾ããåãè¡ããããã¯ãã®ä¸¡æ¹ã®éã«è£
飾ç¨ã®ç·ãããå ´åããããã¯ééã®ä¸å¤®ã«è¡¨ç¤ºããã¾ãããééã®ãµã¤ãºã«ã¯å½±é¿ãã¾ããããããã®è£
飾ç·ã¯ãrule 䏿¬æå®ã使ç¨ãããã¨ã§ãæ¬æ¥ã空ç½ãã§ããé¨åã«è¿½å ãããã¨ãã§ãã¾ãã
ã°ãªããã¬ã¤ã¢ã¦ãã®å ´å
CSS ã°ãªããã¬ã¤ã¢ã¦ãã§ã¯ãgap ããããã£ã«ãã£ã¦è¡ã¨åã®éã®ç©ºéãå®ç¾©ããã¾ããæåã®å¤ã¯è¡éã®æºãå®ç¾©ãã2 ã¤ç®ã¯åéã®æºãå®ç¾©ãã¾ãã1 ã¤ã®å¤ã®ã¿ãæå®ããã¦ããå ´åããã®å¤ã¯ä¸¡æ¹ã®å¯¸æ³ã«ä½¿ç¨ããã¾ãã
ãã¼ã»ã³ãå¤ã®å ´åã¯ãã³ã³ããã¼è¦ç´ ã®ã³ã³ãã³ãããã¯ã¹ã®ãµã¤ãºãåºæºã«è¨ç®ããã¾ãããã¼ã»ã³ãã®ãµã¤ãºã循ç°ãã¦ããå ´åã¯ãå å¨ãµã¤ãºã®å²ãå½ã¦ã決å®ããéã«ã¯ã¼ããåºæºã¨ãã¦æ±ããã¾ãããã³ã³ãã³ãã®ã¬ã¤ã¢ã¦ããè¡ãéã«ã¯ã°ãªããã³ã³ããã¼ã®ã³ã³ãã³ãããã¯ã¹ãåºæºã¨ãã¦æ±ããã¾ããä¸è¨ã® 2 ã¤ã®ä¾ã¯ãä¾ã®ã»ã¯ã·ã§ã³ã«ãããæç¤ºçãªã³ã³ããã¼ãµã¤ãºããã³æé»çãªã³ã³ããã¼ãµã¤ãºãç¨ãããã¼ã»ã³ãå¤ã示ãã¦ãã¾ãã
gap ã«æ£ã®å¤ãæå®ããå ´åã¯ãã°ãªããç·ã«å¤ªããçãããã®ãããªå¹æã«ãªãã¾ããã¤ã¾ãã2 æ¬ã®ã°ãªããç·ã®éã«ããã°ãªãããã©ãã¯ã¯ãããããè¡¨ãæºã¨æºã®éã®ç©ºéã¨ãªãã¾ããã°ãªããã¢ã¤ãã ãè¤æ°ã®è¡ã¾ãã¯åã«ã¾ãããå ´åããã©ãã¯ã®ãµã¤ãºæ±ºå®ã®ããã«ã¯ãã¬ã¿ã¼ã¯ãã¾ãããæ¹åã®ãµã¤ãºã«è¿½å ããããæå®ããããµã¤ãºã®è¿½å ã®ç©ºã®åºå®ãµã¤ãºãã©ãã¯ã¨ãã¦æ±ããã¾ããä¾ãã°ã gap: 10px ã 100 à 100px ã®ããã¯ã¹ãããªã 3 à 3 ã®ã°ãªããã§è¨å®ããã¦ããå ´åãã°ãªããã¢ã¤ãã ã 2 ã¤ã®ç¸¦åã«ã¾ããã£ã¦ããã¨ãã¯ããã®å¹
㯠210px ã«ãªãã¾ãã3 ã¤ãã¹ã¦ã«ã¾ããã£ã¦ããå ´åã¯ãå¹
㯠320px ã«ãªãã¾ãã
justify-content ããã³ align-content ããããã£ã«ãã£ã¦ãã©ãã¯éã«ç©ºéã追å ããããããã°ãªããã®è¡ã¨åã®ééã gap ããããã£ã®å¤ããã大ãããªãå ´åãããã¾ãã
æºã¯ãæé»ã®ã°ãªããã®ãã©ãã¯éã«ã®ã¿ç¾ãã¾ããã°ãªããããã©ãã¯éã§æçåããã¦ããå ´åããããã®ãã©ãã¯ã®éã«ã¯æºã®ä½ç½ã¯è¿½å ããã¾ãããæåã®ãã©ãã¯ã®åãæå¾ã®ãã©ãã¯ã®å¾ã«ã¯æºã¯ãªãããã©ãã¯ãæãããã¾ãã¦ããå ´åããæºã¯ç¾ãã¾ããã
CSS ã°ãªãã仿§ã®åæãã¼ã¸ã§ã³ã§ã¯ããã®ããããã£ã¯ grid-gap ã¨å¼ã°ãã¦ãã¾ãããå¤ãã¦ã§ããµã¤ãã¨ã®äºææ§ãç¶æããããããã©ã¦ã¶ã¼ã§ã¯ grid-gap ã gap ã®å¥åã¨ãã¦åãå
¥ãã¦ãã¾ãã
ãã¬ãã¯ã¹ããã¯ã¹ã®å ´å
ãã¬ãã¯ã¹ã³ã³ããã¼ã§ã¯ãgap ããããã£ã¯ããã¬ãã¯ã¹ã¢ã¤ãã éããã³ãã¬ãã¯ã¹è¡éã®ç©ºéãå®ç¾©ãã¾ããæåã®å¤ããã¬ãã¯ã¹ã¢ã¤ãã éã®ééãªã®ãããã¬ãã¯ã¹è¡éã®ééãªã®ãã¯ãæ¹åã«ãã£ã¦ç°ãªãã¾ãããã¬ãã¯ã¹ã¢ã¤ãã ã¯ã flex-direction ããããã£ã®å¤ã«ãã£ã¦è¡ã¨åã®ã©ã¡ããã«ã¬ã¤ã¢ã¦ãããã¾ããè¡æ¹åï¼row ï¼ããã©ã«ãå¤ï¼ã¾ã㯠row-reverseï¼ã®å ´åã1 ã¤ç®ã®å¤ã¯ãã¬ãã¯ã¹è¡éã®ééãå®ç¾©ãã 2 ã¤ç®ã®å¤ã¯åè¡å
ã®ã¢ã¤ãã éã®ééãå®ç¾©ãã¾ããå¤ã 1 ã¤ããæå®ããã¦ããªãå ´åããã®å¤ã両æ¹ã®æ¬¡å
ã«å¯¾ãã¦ä½¿ç¨ããã¾ãã
åæ¹åï¼column ã¾ã㯠column-reverseï¼ã®å ´åã1 ã¤ç®å¤ã¯ãã¬ãã¯ã¹è¡å
ã®ãã¬ãã¯ã¹é
ç®éã®ééãå®ç¾©ãã 2 ã¤ç®ã®å¤ã¯åãã¬ãã¯ã¹è¡éã®ééãå®ç¾©ãã¾ãããã¡ãããå¤ã 1 ã¤ããæå®ããã¦ããªãå ´åã¯ããã®å¤ã両æ¹ã®æ¬¡å
ã«å¯¾ãã¦ä½¿ç¨ããã¾ãã
段çµã¿ã¬ã¤ã¢ã¦ãã®å ´å
CSS 段çµã¿ã®ã¬ã¤ã¢ã¦ãã«ããã¦ããã®ããããã£ã¯ã段éããã³æ®µã®è¡éã®æºãå®ç¾©ãã¾ãã1 ã¤ç®ã®å¤ã¯é£æ¥ããæ®µããã¯ã¹éã®ééãå®ç¾©ãã2 ã¤ç®ã®å¤ã¯ãcolumn-height ããããã£ã«ãã£ã¦è¤æ°ã®è¡ãè¨å®ããã¦ããå ´åãæ®µããã¯ã¹ã®è¡éã®æºã®ãµã¤ãºãå®ç¾©ãã¾ãã
å ¬å¼å®ç¾©
| åæå¤ | 䏿¬æå®ã®æ¬¡ã®åããããã£ã¨ãã¦
|
|---|---|
| é©ç¨å¯¾è±¡ | 段çµã¿è¦ç´ ããã¬ãã¯ã¹ã³ã³ããã¼ãã°ãªããã³ã³ããã¼ |
| ç¶æ¿ | ãªã |
| è¨ç®å¤ | 䏿¬æå®ã®æ¬¡ã®åããããã£ã¨ãã¦
|
| ã¢ãã¡ã¼ã·ã§ã³ã®ç¨®é¡ | 䏿¬æå®ã®æ¬¡ã®åããããã£ã¨ãã¦
|
形弿æ³
gap =
<'row-gap'> <'column-gap'>?
<row-gap> =
normal |
<length-percentage [0,â]> |
<line-width>
<column-gap> =
normal |
<length-percentage [0,â]> |
<line-width>
<length-percentage> =
<length> |
<percentage>
<line-width> =
<length [0,â]> |
hairline |
thin |
medium |
thick
ä¾
>ãã¬ãã¯ã¹ã¬ã¤ã¢ã¦ã
HTML
<div id="flexbox">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
CSS
#flexbox {
display: flex;
flex-wrap: wrap;
width: 300px;
gap: 20px 5px;
}
#flexbox > div {
border: 1px solid green;
background-color: lime;
flex: 1 1 auto;
width: 100px;
height: 50px;
}
çµæ
ã°ãªããã¬ã¤ã¢ã¦ã
HTML
<div id="grid">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
CSS
#grid {
display: grid;
height: 200px;
grid-template: repeat(3, 1fr) / repeat(3, 1fr);
gap: 20px 5px;
}
#grid > div {
border: 1px solid green;
background-color: lime;
}
çµæ
段çµã¿ã¬ã¤ã¢ã¦ã
HTML
<p class="content-box">
ãã㯠CSS ã® <code>gap</code> ããããã£ã§ä½æããã40px ã®åééãæã¤æ®µçµã¿ã®ããã¹ãã§ããããã£ã¦æ¥½ããã¦ãããããã¾ãããï¼ç§ã¯ããæãã¾ãï¼
</p>
CSS
.content-box {
column-count: 3;
gap: 40px;
}
çµæ
ãã¼ã»ã³ãå¤ã® gap å¤ã¨æç¤ºçãªã³ã³ããã¼ãµã¤ãº
ã³ã³ããã¼ã«åºå®ããããµã¤ãºãè¨å®ããã¦ããå ´åãééã®ãã¼ã»ã³ãå¤ã®è¨ç®ã¯ã³ã³ããã¼ã®ãµã¤ãºã«åºã¥ãã¦è¡ããã¾ãããããã£ã¦ãééã®åä½ã¯ãã¹ã¦ã®ã¬ã¤ã¢ã¦ãã§ä¸è²«ãã¦ãã¾ããæ¬¡ã®ä¾ã§ã¯ã2 種é¡ã®ã³ã³ããã¼ãããã1 ã¤ã¯ã°ãªããã¬ã¤ã¢ã¦ãããã 1 ã¤ã¯ãã¬ãã¯ã¹ã¬ã¤ã¢ã¦ãã§ããã³ã³ããã¼ã«ã¯ 20x20px ã®èµ¤è²ã®åã 5 ã¤ããã¾ããã©ã¡ãã®ã³ã³ããã¼ãæç¤ºçã« height: 200px ãç¨ãã¦é«ãã 200px ã«è¨å®ãã gap: 12.5% 0 ãç¨ãã¦ééãè¨å®ãã¾ãã
<span>Grid</span>
<div id="grid">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
<span>Flex</span>
<div id="flex">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#grid {
display: inline-grid;
height: 200px;
gap: 12.5% 0;
}
#flex {
display: inline-flex;
height: 200px;
gap: 12.5% 0;
}
#grid > div,
#flex > div {
background-color: coral;
width: 20px;
height: 20px;
}
ãã¦ãã¦ã§ãéçºè
ãã¼ã«ã®ã¤ã³ã¹ãã¯ã¿ã¼ã¿ãã使ç¨ãã¦ã°ãªããã¨ãã¬ãã¯ã¹è¦ç´ ãæ¤æ»ãã¾ããããå®éã®ééãè¦ãã«ã¯ãã¤ã³ã¹ãã¯ã¿ã¼ã® <div id="grid"> 㨠<div id="flex"> ã¿ã°ã«ãã¦ã¹ãå½ã¦ã¦ãã ãããééãã©ã¡ããåã 25px ã§ãããã¨ããããã¾ãã
ãã¼ã»ã³ãå¤ã® gap å¤ã¨æé»çãªã³ã³ããã¼ãµã¤ãº
ãµã¤ãºãã³ã³ããã¼ã«æç¤ºçã«è¨å®ããã¦ããªãå ´åããã¼ã»ã³ãå¤ã§ã®ééã¯ã°ãªããã¬ã¤ã¢ã¦ãã¨ãã¬ãã¯ã¹ã¬ã¤ã¢ã¦ãã§ç°ãªãã¾ããæ¬¡ã®ä¾ã§ã¯ãã³ã³ããã¼ã«é«ããæç¤ºçã«è¨å®ããã¦ãã¾ããã
ã°ãªããã¬ã¤ã¢ã¦ãã®å ´åããã¼ã»ã³ãå¤ã¯ã°ãªããã®å®éã®é«ãã«å¯ä¸ãã¾ãããã³ã³ããã¼ã®é«ã㯠0px ã®ééã使ç¨ãã¦è¨ç®ããããããå®éã®é«ã㯠100px ï¼20px à 5ï¼ã¨ãªãã¾ããæ¬¡ã«ãã³ã³ãã³ãããã¯ã¹ã®é«ãã使ç¨ãã¦ãã¼ã»ã³ãå¤ã®ééãè¨ç®ãããããå®éã®éé㯠12.5px ï¼100px x 12.5%ï¼ã«ãªãã¾ããééã¯ã¬ã³ããªã³ã°ã®ç´åã«é©ç¨ããã¾ãããã®ããã«ãã°ãªããã®é«ã㯠100px ã®ã¾ã¾ã§ãããã¬ã³ããªã³ã°ç´åã«ãã¼ã»ã³ãå¤ã追å ããããããªã¼ãã¼ããã¼ãã¾ãã
ãã¬ãã¯ã¹ã¬ã¤ã¢ã¦ãã®å ´åããã¼ã»ã³ãå¤ã®ééã¯å¸¸ã«ã¼ãã®å¤ã«ãªãã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| CSS Gaps Module Level 1 > # gap-shorthand > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
row-gapcolumn-gap- ã°ãªããã¬ã¤ã¢ã¦ãã®åºæ¬æ¦å¿µ - æº
- CSS ããã¯ã¹é ç½®ã¢ã¸ã¥ã¼ã«
- CSS ãã¬ãã¯ã¹ããã¯ã¹ã¬ã¤ã¢ã¦ãã¢ã¸ã¥ã¼ã«
- CSS ã°ãªããã¬ã¤ã¢ã¦ãã¢ã¸ã¥ã¼ã«
- CSS 段çµã¿ã¬ã¤ã¢ã¦ãã¢ã¸ã¥ã¼ã«