CSS display ã®è¤æ°ãã¼ã¯ã¼ãæ§æã®ä½¿ç¨
CSS è¡¨ç¤ºæ¹æ³ã¢ã¸ã¥ã¼ã«ã¯ãCSS ã® display ããããã£ã®è¤æ°ãã¼ã¯ã¼ãæ§æãå®ç¾©ãã¦ãã¾ãããã®ã¬ã¤ãã§ã¯ãè¤æ°ãã¼ã¯ã¼ãæ§æã解説ãã¾ãã
ã¡ã¢: è¤æ°ãã¼ã¯ã¼ãæ§æã¯ãã2 夿§æãã¾ãã¯ãè¤æ°å¤æ§æãã¨ãå¼ã°ãã¦ãã¾ãã
display ããããã£ã®å¤ã夿´ããã¨ã©ããªãã®ã
CSS ã«ã¤ãã¦æåã«å¦ã¶ãã¨ã®ã²ã¨ã¤ã«ãããè¦ç´ ã¯ãããã¯ã¬ãã«ãããè¦ç´ ã¯ã¤ã³ã©ã¤ã³ã¬ãã«ã§ãããã¨ãããã¨ãããã¾ãããããã¯å¤å´è¡¨ç¤ºåã§ããä¾ãã° <h1> ã <p> ã¯æ¢å®ã§ãããã¯ã¬ãã«ã§ããã <span> ã¯ã¤ã³ã©ã¤ã³ã¬ãã«ã§ãã display ããããã£ã使ç¨ããã¨ããããã¯ã¨ã¤ã³ã©ã¤ã³ãåãæ¿ãããã¨ãã§ãã¾ããä¾ãã°ãè¦åºããã¤ã³ã©ã¤ã³ã«ããã«ã¯æ¬¡ã®ãã㪠CSS ã使ç¨ãã¾ãã
h1 {
display: inline;
}
display ããããã£ã使ãã¨ã CSS ã°ãªããã¬ã¤ã¢ã¦ãããã¬ãã¯ã¹ããã¯ã¹ã display: grid ã display: flex ãè¨å®ãããã¨ã§ä½¿ç¨ãããã¨ãã§ãã¾ããçè§£ããä¸ã§éè¦ãªã®ã¯ãè¦ç´ ã® display å¤ã夿´ãããã¨ã§ããã®è¦ç´ ã®ç´æ¥ã®åè¦ç´ ã®æ´å½¢ã³ã³ããã¹ãã夿´ãããã¨ãã§ããã¨ãããã¨ã§ãã display: flex ã display: grid ã使ç¨ããã¨ãè¦ç´ ã®åã¯ãã¬ãã¯ã¹ãã°ãªããã®ã¢ã¤ãã ã¨ãªããã°ãªããã¾ãã¯ãã¬ãã¯ã¹ããã¯ã¹ä»æ§æ¸ã®ããããã£ã«å¿çãã¾ãã
ããããã°ãªããã¨ãã¬ãã¯ã¹ããã¯ã¹ã示ãã®ã¯ãè¦ç´ ã«ã¯å¤å´ã¨å å´ã®ä¸¡æ¹ã®è¡¨ç¤ºåãããã¨ãããã¨ã§ããå¤å´è¡¨ç¤ºåã¯ããã®è¦ç´ ããããã¯ã¬ãã«ãã¤ã³ã©ã¤ã³ã¬ãã«ãã表ãã¾ããå å´è¡¨ç¤ºåã¯ããã®ããã¯ã¹ã®åè¦ç´ ãã©ã®ããã«åä½ããããè¨è¿°ãã¾ãã
ä¾ã¨ãã¦ã display: flex ã使ç¨ããã¨ããããã¯ã¬ãã«ã®ã³ã³ããã¼ã使ãããã¬ãã¯ã¹ã®åãæã¤ãã¨ã«ãªãã¾ããåè¦ç´ ã¯ãã¬ãã¯ã¹æ´å½¢ã³ã³ããã¹ãã«åå ããããã«è¨è¿°ããã¾ãã ããã¯ã <span> â é常ã¯ã¤ã³ã©ã¤ã³ã¬ãã«ã®è¦ç´ â ã« display: flex ãé©ç¨ããã¨åããã¾ãã <span> ã¯ãããã¯ã¬ãã«è¦ç´ ã«ãªãã¾ããã¬ã¤ã¢ã¦ãå
ã®ä»ã®ããã¯ã¹ã¨ã®é¢ä¿ã§ã¯ããããã¯ã¬ãã«ã®ãã®ã¨åãããã«åä½ãã¾ãããããã span ã« display: block ãé©ç¨ãããã®ããã§ãããåè¦ç´ ã®åä½ã夿´ããã¾ãã
以ä¸ã®ã©ã¤ããµã³ãã«ã§ã¯ã<span> ã« display: flex ãé©ç¨ãã¦ãã¾ããããã¯ãããã¯ã¬ãã«ã®ããã¯ã¹ã¨ãªããã¤ã³ã©ã¤ã³æ¹åã«å©ç¨å¯è½ãªãã¹ã¦ã®ç©ºéãå æãã¾ããããã§ã justify-content: space-between ã使ç¨ããã¨ã 2 ã¤ã®ãã¬ãã¯ã¹ã¢ã¤ãã ã®éã«ãã®ç©ºéãå
¥ãããã¨ãã§ãã¾ãã
<span class="flex"> ããããã®ããã¹ã <em>強調ããã¹ã</em> </span>
body {
font: 1.2em / 1.5 sans-serif;
}
.flex {
border: 5px solid #cccccc;
display: flex;
justify-content: space-between;
}
ã¤ã³ã©ã¤ã³ãã¬ãã¯ã¹ã³ã³ããã¼ã使ãããã¨ãã§ãã¾ãã inline-flex ã¨ããåä¸ã®å¤ã使ã£ã¦ãã¬ãã¯ã¹ã³ã³ããã¼ã使ããã¨ãã¤ã³ã©ã¤ã³ã¬ãã«ã®ããã¯ã¹ã¨ãã¬ãã¯ã¹ã®åã使ããã¾ãããã®åã¯ãããã¯ã¬ãã«ã³ã³ããã¼ã®ãã¬ãã¯ã¹ã®åã¨åãããã«åä½ãã¾ããå¯ä¸å¤ãã£ããã¨ã¯ã親ãã¤ã³ã©ã¤ã³ã¬ãã«ããã¯ã¹ã«ãªã£ãã¨ãããã¨ã§ãããããã£ã¦ãä»ã®ã¤ã³ã©ã¤ã³ã¬ãã«ã®ãã®ã¨åæ§ã«åä½ãããããã¯ã¬ãã«ã®ããã¯ã¹ã®ããã«å®å
¨ãªå¹
ï¼ã¾ãã¯ã¤ã³ã©ã¤ã³è»¸ã®ãµã¤ãºï¼ãåãã¾ãããã¤ã¾ããæ¬¡ã®ãããªããã¹ãããã¬ãã¯ã¹ã³ã³ããã¼ã¨ä¸ç·ã«è¡¨ç¤ºãããå¯è½æ§ãããã¾ãã
<div class="flex">
<div>One</div>
<div>Two</div>
</div>
ãã¬ãã¯ã¹ã³ã³ããã¼ã«ç¶ãããã¹ãã§ãã
body {
font: 1.2em / 1.5 sans-serif;
}
.flex > div {
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
.flex {
border: 5px solid #cccccc;
display: inline-flex;
}
ã°ãªããã¬ã¤ã¢ã¦ãã§ä½æ¥ããå ´åãåæ§ã§ãã display: grid ã使ç¨ããã¨ããããã¯ã¬ãã«ã®ããã¯ã¹ã表示ãããç´æ¥ã®åã«ã¯ã°ãªããæ´å½¢ã³ã³ããã¹ãã使ããã¾ãã display: inline-grid ã使ç¨ããã¨ãã¤ã³ã©ã¤ã³ã¬ãã«ã®ããã¯ã¹ã使ãããåè¦ç´ ã«ã°ãªããæ´å½¢ã³ã³ããã¹ãã使ããã¾ãã
è¤æ°ãã¼ã¯ã¼ãã®æ§æã®ä½¿ç¨
ä¸è¨ã®èª¬æãããããããã«ã display ããããã£ã«ã¯å¤§ããªåãããã¾ãããã¼ã¸ä¸ã®ä»ã®ããã¯ã¹ã¨ã®é¢ä¿ã§ãããã¯ã¬ãã«ãã¤ã³ã©ã¤ã³ã¬ãã«ãã示ãã ãã§ãªãããããé©ç¨ããã¦ããããã¯ã¹å
ã®æ´å½¢ã³ã³ããã¹ãã示ãã¾ãããã®åä½ããããã説æããããã«ãdisplay ããããã£ã¯ 2 ã¤ã®å¤ãå¤å´ã¨å
å´ã®å¤ãè¨å®ãããã¨ãã§ãã¾ããå
ã®åä¸å¤ã®æ§æãæå¹ã§ãã
ã¤ã¾ãã display: flex ãè¨å®ãã¦ããã¬ãã¯ã¹ã®åãæã¤ãããã¯ã¬ãã«ã®ããã¯ã¹ã使ãã代ããã«ã display: block flex ã使ç¨ãããã¨ã«ãªãã¾ãããã¬ãã¯ã¹ã®åè¦ç´ ãæã¤ã¤ã³ã©ã¤ã³ã¬ãã«ã®ããã¯ã¹ã使ããã«ã¯ã display: inline-flex ã®ä»£ããã« display: inline flex ã使ç¨ãã¾ãã
<h1>display ã®è¤æ°ã®å¤</h1>
<div class="flex flex1">
<div>Item One</div>
<div>Item Two</div>
<div>Item Three</div>
</div>
<p>æåã®ä¾ã¯ããã¬ãã¯ã¹ã®åè¦ç´ ãæã¤ãããã¯è¦ç´ ã§ãã</p>
<div class="flex flex2">
<div>Item One</div>
<div>Item Two</div>
<div>Item Three</div>
</div>
2 ã¤ç®ã®ä¾ã¯ããã¬ãã¯ã¹åè¦ç´ ãæã¤ã¤ã³ã©ã¤ã³è¦ç´ ã§ãã
body {
font: 1.2em / 1.5 sans-serif;
}
.flex {
border: 5px solid #cccccc;
gap: 10px;
}
.flex > * {
border: 2px solid rgb(96 139 168);
border-radius: 5px;
background-color: rgb(96 139 168 / 0.2);
}
.flex1 {
display: block flex;
}
.flex2 {
display: inline flex;
}
display ã®æ¢åã®ãã¹ã¦ã®å¤ã«å¯¾å¿ãããã®ãããã¾ããæãä¸è¬çãªãã®ã以ä¸ã®è¡¨ã«ç¤ºãã¾ããæãä¸è¬çãªãã®ãä¸ã®è¡¨ã«ç¤ºãã¾ããå®å
¨ãªãªã¹ããè¦ãã«ã¯ã display property specification ã«ãã表ãåç
§ãã¦ãã ããã
| åä¸ã®å¤ | è¤æ°ã®å¤ |
|---|---|
block |
block flow |
flow-root |
block flow-root |
inline |
inline flow |
inline-block |
inline flow-root |
flex |
block flex |
inline-flex |
inline flex |
grid |
block grid |
inline-grid |
inline grid |
display: block flow-root 㨠display: inline flow-root
ãããã®æ°ããå¤ã CSS ã¬ã¤ã¢ã¦ãã®æç¢ºåã«ã©ã®ããã«å½¹ç«ã¤ãã«ã¤ãã¦ã表ã«ãããã¾ã馴æã¿ããªãã¨æãããå¤ã«ã¤ãã¦è¦ã¦ã¿ã¾ããããè¤æ°ãã¼ã¯ã¼ãã® display: block flow-root ã¯ãåä¸ã®å¤ display: flow-root ã«å¯¾å¿ãã¾ãããã®å¤ã®å¯ä¸ã®ç®çã¯ãæ°ãããããã¯æ´å½¢ã³ã³ããã¹ã (BFC) ãçæãããã¨ã§ãã BFC ã¯ãããã¯ã¹ã®ä¸ã«ãããã®ãããã¯ã¹ã®ä¸ã«çã¾ããããã¯ã¹ã®å¤ã«ãããã®ãããã¯ã¹ã®ä¸ã«ä¾µå
¥ã§ããªããã¨ãä¿è¨¼ãã¾ãã
以ä¸ã®ä¾ã§ã¯ã 2 ã¤ã® <p> è¦ç´ ãããããã®ãã¡ 1 ã¤ã¯ <div> ã®ä¸ã«ãã£ã¦ãã©ã®ããã« display ã®å¤ãæ´å½¢ã³ã³ããã¹ãã«å½±é¿ãããã表ãã¦ãã¾ãã
ãã¢ã³ã³ããã¼ã«ã®ããæåã® <div> è¦ç´ ã¯è¡¨ç¤ºãã¦ããªãã®ã§ããã®å¾ã«ç¶ãè¦ç´ ã«éä¸ãã¾ãã
注ç®ãã¹ãè¦ç´ ã¯ã親ãããåãããå
å¼ãã® <div> è¦ç´ 㨠<p> è¦ç´ ã§ããããã®è¦ç´ 㯠ID ã«ãã£ã¦åºå¥ãããã¨ãã§ãã¾ãã
ãã®ã¬ã¤ã¢ã¦ãã§æ³¨ç®ãã¹ãç¹ã¯ã親è¦ç´ ã¨åè¦ç´ ã®éã«ã³ã³ãã³ãããªããã¨ã¨ãåè¦ç´ ã«ä¸ãã¼ã¸ã³ãé©ç¨ããã¦ãããã¨ã§ãã ä¸ãã¼ã¸ã³ã广çã«åè¦ç´ ã親è¦ç´ å ã«æ¼ãä¸ããã¨æãããããã¾ãããã代ããã«èµ·ããã®ã¯ãã¼ã¸ã³ã®ç¸æ®ºã¨å¼ã°ããç¾è±¡ã§ãã ãã®å ´åãåè¦ç´ ã®ãã¼ã¸ã³ã¯è¦ªã®å¤æ¥ããã¯ã¹ããããªãä¸ã¾ã§åºããã親è¦ç´ ããã¼ã¸ã®ããã«ä¸ã«æ¼ãä¸ãã¾ãã ããã¯ãåè¦ç´ ã®ããã¯ã¹ã¢ãã«ããã©ã¦ã¶ã¼ã®éçºè ãã¼ã«ã§æ¤æ»ããã¨ãããã¾ãã
<select> è¦ç´ ã®é¸æãªãã·ã§ã³ã夿´ãã¦ãæ§ã
㪠display å¤ã®å¹æã確èªãã¦ã¿ã¦ãã ããã
ä»»æã®å¤ã¨ flow-root ã使ç¨ããã¨ãè¦ªã®æ°ããæ´å½¢ã³ã³ããã¹ãã使ããåè¦ç´ ã®ãã¼ã¸ã³ã親ã®å¤ç¸ã«å¯¾ãã¦ç¸å¯¾çã«é
ç½®ãããã¨ãã§ãããã¼ã¸ã³ã®å´©ããé¿ãããã¨ãã§ãã¾ãã
flow-root 㨠display: block flow-root ãåãæ¿ããã¨ã 1 ã¤ã®å¤ã® flow-root ãã¼ã¯ã¼ãã¨åã广ãå¾ããã¨ãã§ãã¾ãã
div,
p {
outline: 2px solid black;
background-color: cornflowerblue;
display: block;
margin-bottom: 2rem;
}
#parent {
background-color: oldlace;
min-height: 2rem;
}
#child {
margin-top: 4rem;
outline: 2px dashed red;
}
#sibling {
background-color: lavender;
}
<div id="parent">
<p id="child">#child ã®æ®µè½ï¼#parent ã®å
å´ï¼ã§ãã</p>
</div>
<p id="sibling">#sibling ã®æ®µè½ï¼#parent ã®å
å¼ï¼ã§ãã</p>
flow-root ã®å¤ã¯ããããã¯ã¨ã¤ã³ã©ã¤ã³ã®ã¬ã¤ã¢ã¦ããããããé常ããã¼ã«ã¤ãã¦èããã°ãçã«ããªã£ã¦ããã§ããããHTML ãã¼ã¸ã¯æ°ããæ´å½¢ã³ã³ããã¹ãã使ãï¼æµ®åããã¯ã¹ããã¼ã¸ã³ãå¢çããã¯ã¿åºããªãï¼ãã³ã³ãã³ãã¯ãããã¯ã¨ã¤ã³ã©ã¤ã³ã¬ã¤ã¢ã¦ãã使ç¨ãã¦ãé常ããã¼ã§è¡¨ç¤ºããã¾ããã°ãªããããã¬ãã¯ã¹ã®ã³ã³ããã¼ã使ããã¨ãæ°ããæ´å½¢ã³ã³ããã¹ãï¼ããããã°ãªããæ´å½¢ã³ã³ããã¹ãã¨ãã¬ãã¯ã¹æ´å½¢ã³ã³ããã¹ãï¼ã使ããã¾ããããããæµ®åããã¯ã¹ããã¼ã¸ã³ãå«ãã¦ããããã¯ãã¤ã³ã©ã¤ã³ã¬ã¤ã¢ã¦ãã使ãç¶ãããå ´åã¯ãæ°ããããã¼ã«ã¼ãã使ãããããã¯ãã¤ã³ã©ã¤ã³ã¬ã¤ã¢ã¦ãã§ããç´ããã¨ãã§ãã¾ãããã®ä½ç½®ãã䏿¹åã¯ããã¹ã¦æ°ããããã¼ã«ã¼ãã®ä¸ã«å«ã¾ãã¾ãã
ããããdisplay: flow-root ã® 2 夿§æã display: block flow-root ã§ããçç±ã§ãããããã¯ã¬ãã«ã®ããã¯ã¹ã¨é常ã®ããã¼ã«åå ããåãªãã¸ã§ã¯ããæã¤ããããã¯æ´å½¢ã³ã³ããã¹ãã使ãã¦ãã¾ãã対å¿ããçµã§ãã display: inline flow-root ã«ã¤ãã¦ã¯ã©ãã§ããããï¼ãã㯠display: inline-block ãè¨è¿°ããæ°ããæ¹æ³ã§ãã
display: inline-block ã¨ããå¤ã¯ã CSS ã®åæããåå¨ãã¦ãã¾ãããã®å¤ã使ç¨ããçç±ã¯ãä¾ãã°ããã²ã¼ã·ã§ã³ã¢ã¤ãã ã使ããéã«ãã¤ã³ã©ã¤ã³ã¢ã¤ãã ãè¦ç´ ããé¢ãã¦è·é¢ãç½®ããã¨ãã§ããããã«ãããããã¾ãã¯ä»¥ä¸ã®ä¾ã®ããã«ã¤ã³ã©ã¤ã³è¦ç´ ã«ããã£ã³ã°ä»ãã®èæ¯ã追å ãããå ´åã§ãã
<p>
ãã®æ®µè½ã«ã¯<span class="inline-block">ããã£ã³ã°ãã¤ãã</span>è¦ç´ ãããã¾ããããã¯ã¤ã³ã©ã¤ã³ãããã¯ã§ãããããããã£ã³ã°ãå«ã¾ãã¦ããããã以å¤ã®è¡ããã¯ã¹ãæ¼ãã®ãã¾ãã
</p>
body {
font: 1.2em / 1.5 sans-serif;
}
p {
border: 2px dashed;
width: 300px;
}
.inline-block {
background-color: rgb(0 0 0 / 0.4);
color: white;
padding: 10px;
display: inline-block;
}
ãããã display: inline-block ãæã¤è¦ç´ ã¯ãæµ®åããã¯ã¹ãå«ããã¨ã«ãªãã¾ããããã¯ãã¤ã³ã©ã¤ã³ã¬ãã«ã®ããã¯ã¹ã®ä¸ã«ãããã¹ã¦ã®ãã®ãå«ã¿ã¾ãããããã£ã¦ã display: inline-block 㯠display: flow-root ã¨å
¨ãåãã§ããããããã¯ã¬ãã«ã®ããã¯ã¹ã§ã¯ãªããã¤ã³ã©ã¤ã³ã¬ãã«ã®ããã¯ã¹ã§è¡ãã¾ããæ°ããæ§æã¯ããã®å¤ã§ä½ãèµ·ãã£ã¦ããããæ£ç¢ºã«è¡¨ç¾ãã¦ãã¾ããä¸è¨ã®ä¾ã§ã¯ãdisplay: inline-block ã¨åãçµæãå¾ãã®ã« display: inline flow-root ã«å¤æ´ãããã¨ãã§ãã¾ãã
display ã®å¤ãå¤ã«ã¤ãã¦
display ã®åä¸ã®å¤ã¯ã仿§æ¸ã§ã¯å¤ãå¤ã¨ãã¦è¨è¿°ããã¦ãããä¸ã®è¡¨ã§ç¤ºããã¦ããããã«ãåè¤æ°ãã¼ã¯ã¼ãçã«ã¯å¤ãå¤çã¸ã®ç´æ¥çãªå²ãå½ã¦ãããã®ã§ãç¾å¨ã®ã¨ããè¤æ°ãã¼ã¯ã¼ãçã使ç¨ãããã¨ã«ããå©ç¹ã¯ããã¾ããã
display ã®å¤ã 1 ã¤ã ãã®å ´åã仿§æ¸ã§ã¯ãå¤å´ã®å¤ã§ãã block ã inline ã®ã¿ã使ç¨ããå ´åã«ã©ããããã説æããã¦ãã¾ãã
ã
<display-outside>ã®å¤ãæå®ããããã®ã®ã<display-inside>ãçç¥ãããå ´åããã®è¦ç´ ã®å å´è¡¨ç¤ºåã¯æ¢å®ã§ flow ã«ãªãã¾ããã
ã¤ã¾ããåä¸ã®å¤ã®ä¸çã§ã®åä½ã¨å
¨ãåãã§ãã display: block ã display: inline ãæå®ããã¨ãããã¯ã¹ã®å¤å´ã®è¡¨ç¤ºå¤ã夿´ããã¾ãããåãªãã¸ã§ã¯ãã¯é常ã®ããã¼ã§ç¶è¡ããã¾ãã
ãããå
å´ã®å¤ã§ãã flex, grid, flow-root ã®ã¿ãæå®ããå ´åã仿§æ¸ã§ã¯ãå¤å´ã®å¤ã¨ã㦠block ãæå®ããããã«èª¬æããã¦ãã¾ãã
ã
<display-inside>ã®å¤ãæå®ããããã®ã®ã<display-outside>ãçç¥ãããå ´åããã®è¦ç´ ã®å¤å´ã®è¡¨ç¤ºåã¯æ¢å®ã§ block ã«ãªãã¾ãããã ãã ruby ã¯ä¾å¤ã§æ¢å®ã§ inline ã«ãªãã¾ããã
æå¾ã«ãããã¤ãæ§æ¥ã®åææ¸ã¿ã¤ã³ã©ã¤ã³ã¬ãã«å¤ãããã¾ãã
inline-blockinline-tableinline-flexinline-grid
対å¿ãã¦ãããã©ã¦ã¶ã¼ãããããåä¸ã®å¤ã¨ãã¦è¦ã¤ããå ´åã以ä¸ã® 2 å¤çã¨åãããã«æ±ããã¾ãã
inline flow-rootinline tableinline flexinline grid
ã¤ã¾ããåä¸ã®å¤ã使ç¨ããæ¢åãµã¤ãã¨æ°è¦ãµã¤ãã®äºææ§ãç¶æãã¤ã¤ã仿§ã®é²åãå¯è½ã«ãããã¨ã§ãç¾ç¶ã®ç¶æ³ããã¹ã¦ãã¡ãã¨ã«ãã¼ãã¦ããã®ã§ãã