pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://developer.mozilla.org/ja/docs/Web/CSS/Guides/Flexible_box_layout/Basic_concepts

™ã€‚ã“ã®è¨˜äº‹ã§ã¯ãƒ•レックスボックスã®ä¸»ãªæ©Ÿèƒ½ã®æ¦‚è¦ã‚’説明ã—ã€ã“ã®ã‚¬ã‚¤ãƒ‰ã®æ®‹ã‚Šã®éƒ¨åˆ†ã§ã•らã«è©³ã—ã説明ã—ã¾ã™ã€‚" />

ã“ã®ãƒšãƒ¼ã‚¸ã¯ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãƒ¼ã®å°½åŠ›ã§è‹±èªžã‹ã‚‰ç¿»è¨³ã•れã¾ã—ãŸã€‚MDN Web Docs コミュニティーã«ã¤ã„ã¦ã‚‚ã£ã¨çŸ¥ã‚Šã€ä»²é–“ã«ãªã‚‹ã«ã¯ã“ã¡ã‚‰ã‹ã‚‰ã€‚

View in English Always switch to English

フレックスボックスã®åŸºæœ¬æ¦‚念

フレックスボックスレイアウト(通常フレックスボックスã¨å‘¼ã°ã‚Œã‚‹ï¼‰ã¯ã€ã‚¢ã‚¤ãƒ†ãƒ é–“ã®ä½™ç™½ã‚’分é…ã™ã‚‹ãŸã‚ã®ä¸€æ¬¡å…ƒãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆãƒ¢ãƒ‡ãƒ«ã§ã€æ•°å¤šãã®é…置機能をå«ã‚“ã§ã„ã¾ã™ã€‚ã“ã®è¨˜äº‹ã§ã¯ãƒ•レックスボックスã®ä¸»ãªæ©Ÿèƒ½ã®æ¦‚è¦ã‚’説明ã—ã€ã“ã®ã‚¬ã‚¤ãƒ‰ã®æ®‹ã‚Šã®éƒ¨åˆ†ã§ã•らã«è©³ã—ã説明ã—ã¾ã™ã€‚

フレックスボックスãŒä¸€æ¬¡å…ƒã§ã‚ã‚‹ã“ã¨ã¯ã€ãƒ•レックスボックスãŒä¸€ã¤ã®æ¬¡å…ƒã€ã¤ã¾ã‚Šè¡Œã‹åˆ—ã®ã„ãšã‚Œã‹ã®æ–¹å‘ã«ã—ã‹ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã—ãªã„ã“ã¨ã‚’è¿°ã¹ã¦ã„ã¾ã™ã€‚ã“れ㯠CSS グリッドレイアウトãŒè¡Œã¨åˆ—ã®äºŒæ¬¡å…ƒã‚’åŒæ™‚ã«åˆ¶å¾¡ã™ã‚‹ãƒ¢ãƒ‡ãƒ«ã§ã‚ã‚‹ã“ã¨ã¨å¯¾ç…§çš„ã§ã™ã€‚

フレックスボックス 2 ã¤ã®è»¸

フレックスボックスを使ã†ã¨ã㯠2 ã¤ã®è»¸ã€ã¤ã¾ã‚Šä¸»è»¸ (main axis) ã¨äº¤å·®è»¸ (cross axis) ã®è¦³ç‚¹ã‹ã‚‰è€ƒãˆã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚主軸㯠flex-direction プロパティã«ã‚ˆã£ã¦å®šç¾©ã•れã€äº¤å·®è»¸ã¯ä¸»è»¸ã«åž‚ç›´ã«äº¤ã‚る軸ã§ã™ã€‚フレックスボックスを使ã£ãŸæ“作ã§ã¯å¸¸ã«ã“ã®è»¸ã«ã¤ã„ã¦å‚ç…§ã™ã‚‹ã“ã¨ã«ãªã‚‹ã®ã§ã€æœ€åˆã«ãã®å‹•ãã‚’ç†è§£ã—ã¾ã—ょã†ã€‚

主軸

主軸㯠flex-direction ã«ã‚ˆã£ã¦å®šç¾©ã•れã€4 種類ã®å€¤ã‚’ã¨ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

  • row
  • row-reverse
  • column
  • column-reverse

row ã¾ãŸã¯ row-reverse ã‚’é¸æŠžã—ãŸå ´åˆã€ä¸»è»¸ã¯ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³æ–¹å‘ã«æ²¿ã£ãŸè»¸ã¨ãªã‚Šã¾ã™ã€‚

flex-direction ㌠row ã«è¨­å®šã•れãŸå ´åˆã®ä¸»è»¸ã¯ã€ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³æ–¹å‘ã®è¡Œã«æ²¿ã£ãŸè»¸ã¨ãªã‚‹ã€‚

column ã¾ãŸã¯ column-reverse ã‚’é¸ã‚“ã å ´åˆã¯ã€ãƒšãƒ¼ã‚¸ã®ä¸Šã‹ã‚‰ä¸‹ã«å‘ã‹ã£ã¦ãƒ–ロック方å‘ã«æ²¿ã£ãŸè»¸ã¨ãªã‚Šã¾ã™ã€‚

flex-direction ㌠column ã«è¨­å®šã•れãŸå ´åˆã®ä¸»è»¸ã¯ã€ãƒ–ロック方å‘ã«æ²¿ã£ãŸè»¸ã¨ãªã‚‹ã€‚

交差軸

交差軸ã¯ä¸»è»¸ã«åž‚ç›´ã«äº¤ã‚る軸ã§ã™ã€‚ã—ãŸãŒã£ã¦ã€flex-direction (主軸) ㌠row ã¾ãŸã¯ row-reverse ãªã‚‰ã€äº¤å·®è»¸ã¯åˆ—ã«æ²¿ã£ãŸã‚‚ã®ã«ãªã‚Šã¾ã™ã€‚

flex-direction ㌠row ã«è¨­å®šã•れã¦ã„ã‚‹å ´åˆã®äº¤å·®è»¸ã¯ã€ãƒ–ロック方å‘ã«æ²¿ã£ãŸè»¸ã¨ãªã‚‹ã€‚

主軸㌠column ã¾ãŸã¯ column-reverse ã§ã‚れã°ã€äº¤å·®è»¸ã¯è¡Œã®æ–¹å‘ã«ãªã‚Šã¾ã™ã€‚

flex-direction ㌠column ã«è¨­å®šã•れã¦ã„ã‚‹å ´åˆã®äº¤å·®è»¸ã¯ã€ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³æ–¹å‘ã«æ²¿ã£ãŸè»¸ã¨ãªã‚‹ã€‚

行ã®å…ˆé ­ã¨æœ«å°¾

ã‚‚ã†ä¸€ã¤ã®é‡è¦ãªç†è§£ç‚¹ã¯ã€ãƒ•ãƒ¬ãƒƒã‚¯ã‚¹ãƒœãƒƒã‚¯ã‚¹ãŒæ–‡æ›¸ã®æ›¸å­—æ–¹å‘ã«ã¤ã„ã¦ä¸€åˆ‡ã®ä»®å®šã‚’ã—ãªã„ã“ã¨ã§ã™ã€‚フレックスボックスã¯ã€ãƒ†ã‚­ã‚¹ãƒˆã®ã™ã¹ã¦ã®è¡ŒãŒæ–‡æ›¸ã®å·¦ä¸Šã‹ã‚‰å§‹ã¾ã‚Šã€å³å´ã«å‘ã‹ã£ã¦å®Ÿè¡Œã—ã€æ–°ã—ã„行ãŒä»–ã®è¡Œã®ä¸‹ã« 1 行ãšã¤ç¾ã‚Œã‚‹ã“ã¨ã‚’想定ã—ã¦ã„ã‚‹ã‚ã‘ã§ã¯ã‚りã¾ã›ã‚“。むã—ã‚ã€ä»–ã®è«–ç†ãƒ—ロパティや値ã®ã‚ˆã†ã«ã€ã™ã¹ã¦ã®æ›¸å­—æ–¹å‘ã«å¯¾å¿œã—ã¦ã„ã¾ã™ã€‚

後述ã™ã‚‹ãƒ•ãƒ¬ãƒƒã‚¯ã‚¹ãƒœãƒƒã‚¯ã‚¹ã¨æ›¸å­—æ–¹å‘ã®é–¢ä¿‚を読むã“ã¨ã‚‚ã§ãã¾ã™ãŒã€ãƒ•ãƒ¬ãƒƒã‚¯ã‚¹ã‚¢ã‚¤ãƒ†ãƒ ãŒæµã‚Œã‚‹æ–¹å‘を説明ã™ã‚‹ã¨ãã«ã€å·¦å³ã‚„上下ã®è©±ã‚’ã—ãªã„ç†ç”±ã¯ã€ä»¥ä¸‹ã®èª¬æ˜Žã§ç†è§£ã§ãã‚‹ã¨æ€ã„ã¾ã™ã€‚

ã‚‚ã— flex-direction ㌠row ã§è¨€èªžãŒè‹±èªžã®å ´åˆã€ä¸»è»¸ã®å…ˆé ­ã¯å·¦ã§æœ«å°¾ã¯å³ã«ãªã‚Šã¾ã™ã€‚

英語ã®å ´åˆã€å…ˆé ­å´ã¯å·¦ã«ãªã‚Šã¾ã™ã€‚

一方ã§è¨€èªžãŒã‚‚ã—アラビア語ã§ã‚ã£ãŸå ´åˆã€ä¸»è»¸ã®å…ˆé ­ã¯å³ã§æœ«å°¾ãŒå·¦ã«ãªã‚Šã¾ã™ã€‚

峿›¸ãã®è¨€èªžã§ã¯ã€å…ˆé ­å´ã¯å³ã«ãªã‚Šã¾ã™ã€‚

両言語ã¨ã‚‚ã«æ›¸å­—æ–¹å‘ãŒæ¨ªæ›¸ãã§ã‚ã‚‹ãŸã‚ã€ã„ãšã‚Œã®å ´åˆã§ã‚‚ã€äº¤å·®è»¸ã®å…ˆé ­å´ã¯ä¸Šã§æœ«å°¾å´ãŒä¸‹ã«ãªã‚Šã¾ã™ã€‚

ã“ã†ã—ã¦ã¿ã‚‹ã¨ã€å·¦ã¨å³ã§ã¯ãªãå…ˆé ­ã¨æœ«å°¾ã§è€ƒãˆã‚‹ã“ã¨ãŒè‡ªç„¶ãªã‚‚ã®ã«æ€ãˆã¾ã™ã€‚ã“ã®è€ƒãˆæ–¹ã¯ CSS グリッドレイアウトã®ã‚ˆã†ãªã€åŒã˜ãƒ‘ターンã«å¾“ã£ã¦ã„るレイアウト方法を扱ã†éš›ã«ã‚‚役立ã¤ã§ã—ょã†ã€‚

フレックスコンテナー

フレックスボックスを使用ã—ã¦ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã•ã‚ŒãŸæ–‡æ›¸ã®é ˜åŸŸã‚’フレックスコンテナーã¨å‘¼ã³ã¾ã™ã€‚フレックスコンテナーを作æˆã™ã‚‹ã«ã¯ã€ãã®é ˜åŸŸã® display プロパティを flex ã«è¨­å®šã—ã¾ã™ã€‚ãã†ã™ã‚‹ã¨ã€ãã®ã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã®ç›´æŽ¥ã®å­ã¯ãƒ•レックスアイテムã«ãªã‚Šã¾ã™ã€‚コンテナーãã®ã‚‚ã®ã‚’インラインã§è¡¨ç¤ºã™ã‚‹ã‹ãƒ–ロック整形コンテキストã§è¡¨ç¤ºã™ã‚‹ã‹ã¯ã€ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³ãƒ•レックスコンテナーã§ã¯ inline flex ã¾ãŸã¯ inline-flex ã‚’ã€ãƒ–ロックレベルフレックスコンテナーã§ã¯ block flex ã¾ãŸã¯ flex を使用ã—ã¦æ˜Žç¤ºçš„ã«åˆ¶å¾¡ã§ãã¾ã™ã€‚

åˆæœŸå€¤

CSS ã®ã™ã¹ã¦ã®ãƒ—ロパティã¨åŒæ§˜ã«ã€ã„ãã¤ã‹ã®åˆæœŸå€¤ãŒå®šç¾©ã•れã¦ãŠã‚Šã€æ–°ã—ã„フレックスコンテナーã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¯æ¬¡ã®ã‚ˆã†ã«å‹•作ã—ã¾ã™ã€‚

  • フレックスアイテムã¯è¡Œã«æ²¿ã£ã¦ä¸¦ã‚“ã§è¡¨ç¤ºã•れã¾ã™ï¼ˆflex-direction ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã®æ—¢å®šå€¤ã¯ row ã§ã™ï¼‰ã€‚
  • フレックスアイテムã¯ä¸»è»¸ã®å…ˆé ­å´ã‚’先頭ã«ä¸¦ã³ã¾ã™ã€‚
  • フレックスアイテムã¯ä¸»è»¸æ–¹å‘ã«å¼•ã伸ã°ã•れã¾ã›ã‚“ãŒã€åŽç¸®ã™ã‚‹å ´åˆãŒã‚りã¾ã™ï¼ˆãƒ•レックスアイテム㮠flex-grow ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã®æ—¢å®šå€¤ã¯ 0〠flex-shrink ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã®æ—¢å®šå€¤ã¯ 1 ã§ã™ï¼‰ã€‚
  • フレックスアイテムã¯ã€äº¤å·®è»¸ã®å¤§ãã•を埋ã‚るよã†ã«å¼•ã伸ã°ã•れã¾ã™ï¼ˆalign-items ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã®æ—¢å®šå€¤ã¯ stretch ã§ã™ï¼‰ã€‚
  • フレックスアイテム㮠flex-basis ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã®æ—¢å®šå€¤ã¯ auto ã§ã™ã€‚ã¤ã¾ã‚Šã€æ¨ªæ›¸ãã®å ´åˆã¯ãƒ•レックスアイテム㮠width ã¨ç­‰ã—ããªã‚Šã€ç¸¦æ›¸ãã®å ´åˆã¯ãƒ•レックスアイテム㮠height ã¨ç­‰ã—ããªã‚Šã¾ã™ã€‚対応ã™ã‚‹ width/height ã‚‚ auto ã«è¨­å®šã•れã¦ã„ã‚‹å ´åˆã¯ã€ä»£ã‚り㫠flex-basis ã® content ã®å€¤ãŒä½¿ç”¨ã•れã¾ã™ã€‚
  • ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã¯ 1 列ã«ä¸¦ã³ï¼ˆflex-wrap ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã®æ—¢å®šå€¤ã¯ nowrap ã§ã™ï¼‰ã€ãれら㮠width/height ã®åˆè¨ˆãŒã‚³ãƒ³ãƒ†ãƒŠãƒ¼è¦ç´ ã® width/height ã‚’è¶…ãˆã‚‹ã¨ã€ã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã‹ã‚‰ã¯ã¿å‡ºã—ã¾ã™ã€‚

ãã®çµæžœã€ã‚¢ã‚¤ãƒ†ãƒ ã¯ã™ã¹ã¦ä¸€è¡Œã«ä¸¦ã³ã€ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®å¯¸æ³•ãŒä¸»è»¸æ–¹å‘ã®å¯¸æ³•ã«ãªã‚Šã¾ã™ã€‚アイテムãŒã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã«åŽã¾ã‚‰ãªã„å ´åˆã¯ã€æŠ˜ã‚Šè¿”ã•れãšã«ã‚ãµã‚Œã¾ã™ã€‚一部ã®ã‚¢ã‚¤ãƒ†ãƒ ã®é«˜ã•ãŒä»–ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚ˆã‚Šé«˜ã„å ´åˆã€ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã¯äº¤å·®è»¸å…¨ä½“ã®å¤§ãã•ã¾ã§å¼•ã伸ã°ã•れã¾ã™ã€‚

ã“ã®è¦‹ãˆæ–¹ã«ã¤ã„ã¦ã®ã€ä¾‹ã‚’ä»¥ä¸‹ã«æŒ™ã’ã¾ã™ã€‚ "Play" をクリックã™ã‚‹ã¨ã€ã“ã®ä¾‹ã‚’ MDN Playground ã§é–‹ãã€ã‚¢ã‚¤ãƒ†ãƒ ã‚’編集ã—ãŸã‚Šã€æ–°ã—ã„アイテムを追加ã—ã¦åˆæœŸã®ãƒ•レックスボックスã®å‹•作を試ã—ãŸã‚Šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

html
<div class="box">
  <div>One</div>
  <div>Two</div>
  <div>Three <br />ã«ã¯è¿½åŠ ã®<br />テキストãŒ<br />ã‚りã¾ã™</div>
</div>
css
.box > * {
  border: 2px solid rgb(96 139 168);
  border-radius: 5px;
  background-color: rgb(96 139 168 / 0.2);
}

.box {
  border: 2px dotted rgb(96 139 168);
  display: flex;
}

flex-direction ã®å¤‰æ›´

フレックスコンテナー㫠flex-direction プロパティを設定ã™ã‚‹ã¨ã€ãƒ•レックスアイテムãŒè¡¨ç¤ºã•れる方å‘を変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ flex-direction: row-reverse ã¨è¨­å®šã™ã‚‹ã“ã¨ã§ã€ã‚¢ã‚¤ãƒ†ãƒ ã¯è¡Œã«æ²¿ã£ã¦ä¸¦ã¶ç‚¹ã¯å¤‰ã‚りã¾ã›ã‚“ãŒã€å…ˆé ­ã¨æœ«å°¾ãŒå…¥ã‚Œæ›¿ã‚りã¾ã™ã€‚

flex-direction ã‚’ column ã«å¤‰æ›´ã™ã‚‹ã¨ã€ä¸»è»¸ã®æ–¹å‘ãŒå¤‰ã‚りã€ãƒ•レックスアイテムã¯åˆ—ã«æ²¿ã£ã¦ä¸¦ã‚“ã§è¡¨ç¤ºã•れるよã†ã«ãªã‚Šã¾ã™ã€‚ column-reverse ã§ã¯ã€ã•らã«å…ˆé ­ã¨æœ«å°¾ãŒå…¥ã‚Œæ›¿ã‚りã¾ã™ã€‚

ライブサンプルã§ã¯ã€flex-direction ㌠row-reverse ã«è¨­å®šã•れã¦ã„ã¾ã™ã€‚ä»–ã®å€¤ã§ã‚ã‚‹ row, column, column-reverse ã§ä½•ãŒèµ·ã“ã‚‹ã‹ç¢ºã‹ã‚ã¦ã¿ã¦ãã ã•ã„。

html
<div class="box">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>
css
.box > * {
  border: 2px solid rgb(96 139 168);
  border-radius: 5px;
  background-color: rgb(96 139 168 / 0.2);
}

.box {
  border: 2px dotted rgb(96 139 168);
  display: flex;
  flex-direction: row-reverse;
}

flex-wrap ã«ã‚ˆã‚‹è¤‡æ•°è¡Œã®ãƒ•レックスコンテナー

フレックスボックス㯠1 次元ã®ãƒ¢ãƒ‡ãƒ«ã§ã™ãŒã€ãƒ•レックスアイテムを複数ã®è¡Œã«ã‚ãŸã£ã¦æŠ˜ã‚Šè¿”ã™ã“ã¨ã¯å¯èƒ½ã§ã™ã€‚ãã®å ´åˆã€å„行を新ã—ã„フレックスコンテナーã¨è€ƒãˆã¦ãã ã•ã„。å‰å¾Œã®è¡Œã‚’å‚ç…§ã™ã‚‹ã“ã¨ãªãã€å„行ã«ä½™ç™½ãŒåˆ†é…ã•れã¾ã™ã€‚

折り返ã—動作を発生ã•ã›ã‚‹ãŸã‚ã«ã¯ã€ flex-wrap プロパティ㫠wrap を追加ã—ã¾ã™ã€‚ã“れã§ã€ã‚¢ã‚¤ãƒ†ãƒ ãŒå¤§ãã™ãŽã¦ã™ã¹ã¦ 1 行ã«è¡¨ç¤ºã§ããªã„å ´åˆã€åˆ¥ã®è¡Œã«æŠ˜ã‚Šè¿”ã•れã¾ã™ã€‚次ã®ãƒ©ã‚¤ãƒ–サンプルã¯ã€ width ãŒæŒ‡å®šã•れãŸã‚¢ã‚¤ãƒ†ãƒ ã‚’å«ã‚“ã§ã„ã¾ã™ã€‚アイテムã®åˆè¨ˆå¹…ã¯ãƒ•レックスコンテナーã«ã¯åºƒã™ãŽã¾ã™ã€‚ flex-wrap ã‚’ wrap ã«è¨­å®šã™ã‚‹ã¨ã€ã‚¢ã‚¤ãƒ†ãƒ ã¯è¤‡æ•°è¡Œã«ã¾ãŸãŒã£ã¦æŠ˜ã‚Šè¿”ã•れã¾ã™ã€‚ã“ã‚Œã‚’åˆæœŸå€¤ã§ã‚ã‚‹ nowrap ã«è¨­å®šã™ã‚‹ã¨ã€ã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã«åˆã†ã‚ˆã†ã«åŽç¸®ã—ã¾ã™ã€‚アイテムãŒåŽç¸®ã™ã‚‹ã®ã¯ã€ flex-shrink: 1 ã‚’å«ã‚€ãƒ•レックスボックスã®åˆæœŸå€¤ã‚’使用ã—ã¦ã„ã‚‹ã‹ã‚‰ã§ã™ã€‚ nowrap を使用ã™ã‚‹ã¨ã€ã‚¢ã‚¤ãƒ†ãƒ ãŒç¸®å°ã§ããªã‹ã£ãŸã‚Šã€åŽã¾ã‚‹ã»ã©å°ã•ã縮å°ã§ããªã‹ã£ãŸå ´åˆã«ã‚ªãƒ¼ãƒãƒ¼ãƒ•ローãŒç™ºç”Ÿã—ã¾ã™ã€‚

html
<div class="box">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>
css
.box > * {
  border: 2px solid rgb(96 139 168);
  border-radius: 5px;
  background-color: rgb(96 139 168 / 0.2);
  width: 200px;
}

.box {
  width: 500px;
  border: 2px dotted rgb(96 139 168);
  display: flex;
  flex-wrap: wrap;
}

ãƒ•ãƒ¬ãƒƒã‚¯ã‚¹ã‚¢ã‚¤ãƒ†ãƒ ã®æŠ˜ã‚Šè¿”ã—ã«ã¤ã„ã¦ã®è©³ç´°ã¯ã€ãƒ•ãƒ¬ãƒƒã‚¯ã‚¹ã‚¢ã‚¤ãƒ†ãƒ ã®æŠ˜ã‚Šè¿”ã—をマスターã™ã‚‹ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

flex-flow 一括指定プロパティ

flex-direction 㨠flex-wrap ã® 2 ã¤ã®ãƒ—ロパティã¯ã€flex-flow 一括指定プロパティã«ã‚ˆã‚Š 2 ã¤åŒæ™‚ã«æŒ‡å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

次ã®ä¾‹ã§ã€1 ã¤ç›®ã®å€¤ã‚’ flex-direction ã«ä½¿ãˆã‚‹å€¤ (row, row-reverse, column, column-reverse ã®ã„ãšã‚Œã‹) ã«å¤‰æ›´ã—ã¦ã¿ã¦ãã ã•ã„。ã¾ãŸã€2 ã¤ç›®ã®å€¤ã‚’ wrap ã‹ nowrap ã«å¤‰æ›´ã—ã¦ã¿ã¦ãã ã•ã„。

html
<div class="box">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>
css
.box > * {
  border: 2px solid rgb(96 139 168);
  border-radius: 5px;
  background-color: rgb(96 139 168 / 0.2);
  width: 200px;
}

.box {
  width: 500px;
  border: 2px dotted rgb(96 139 168);
  display: flex;
  flex-flow: row wrap;
}

フレックスアイテムã«é©ç”¨ã•れるプロパティ

ãれãžã‚Œã®ãƒ•レックスアイテムã®ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³ã‚µã‚¤ã‚ºã‚’制御ã™ã‚‹ãŸã‚ã«ã€ 3 ã¤ã®ãƒ—ロパティã§ç›´æŽ¥å¯¾è±¡ã«ã—ã¾ã™ã€‚

以下ã§ã“れらã®ãƒ—ロパティを簡å˜ã«è¦‹ã¦ã„ãã¾ã™ãŒã€ã‚ˆã‚ŠåŒ…æ‹¬çš„ãªæƒ…å ±ãŒå¿…è¦ãªå ´åˆã¯ã€ä¸»è»¸æ–¹å‘ã®ãƒ•ãƒ¬ãƒƒã‚¯ã‚¹ã‚¢ã‚¤ãƒ†ãƒ ã®æ¯”率ã®åˆ¶å¾¡ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

上述ã®ãƒ—ロパティã«ã¤ã„ã¦ç†è§£ã™ã‚‹å‰ã«ã€åˆ†é…å¯èƒ½ãªä½™ç™½ (available space) ã®æ¦‚念ã«ã¤ã„ã¦è€ƒãˆã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚上述ã®ãƒ—ロパティを変更ã™ã‚‹ã¨ã„ã†ã“ã¨ã¯ã€ã‚¢ã‚¤ãƒ†ãƒ é–“ã§ã®åˆ†é…å¯èƒ½ãªä½™ç™½ã®åˆ†é…ã®ã—ã‹ãŸã‚’変ãˆã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚ã“ã®åˆ†é…å¯èƒ½ãªä½™ç™½ã«ã¤ã„ã¦ã®è€ƒãˆæ–¹ã¯ã€ã‚¢ã‚¤ãƒ†ãƒ ã®é…ç½®ã«ã¤ã„ã¦è€ƒãˆã‚‹æ™‚ã«é‡è¦ã«ãªã‚Šã¾ã™ã€‚

ãŸã¨ãˆã°ã€ 500 ピクセル幅ã®ã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã®ä¸­ã« 100 ピクセル幅ã®ã‚¢ã‚¤ãƒ†ãƒ ãŒ 3 ã¤ã‚ã‚‹ã¨ãã€ã‚¢ã‚¤ãƒ†ãƒ ã®é…ç½®ã«å¿…è¦ãªå¹…㯠300 ピクセルã§ã™ã€‚ã“ã®ã¨ã 200 ピクセルã®åˆ†é…å¯èƒ½ãªä½™ç™½ãŒæ®‹ã£ã¦ã„ã¾ã™ã€‚åˆæœŸå€¤ã‚’変更ã—ãªã‹ã£ãŸå ´åˆãƒ•レックスボックスã¯ã€ä½™ç™½ã‚’最後ã®ã‚¢ã‚¤ãƒ†ãƒ ã®å¾Œã‚ã«é…ç½®ã—ã¾ã™ã€‚

ã“ã®ãƒ•レックスコンテナーã¯ã€ã‚¢ã‚¤ãƒ†ãƒ ã‚’é…ç½®ã—ãŸå¾Œã«åˆ†é…å¯èƒ½ãªä½™ç™½ãŒã‚りã¾ã™ã€‚

ãã†ã§ã¯ãªãã€ã‚¢ã‚¤ãƒ†ãƒ ã‚’拡大ã—ã¦ä½™ç™½ã‚’埋ã‚ãŸã„ã¨ãã«ã¯ã€ä½™ã£ã¦ã„る余白をアイテムã«åˆ†é…ã™ã‚‹æ–¹æ³•ãŒå¿…è¦ã¨ãªã‚Šã¾ã™ã€‚アイテム自体ã«é©ç”¨ã•れるフレックスプロパティã¯ã€åˆ©ç”¨å¯èƒ½ãªä½™ç™½ã‚’ã©ã®ã‚ˆã†ã«å…„弟フレックスアイテムã«åˆ†é…ã™ã‚‹ã‹ã‚’決定ã—ã¾ã™ã€‚

flex-basis プロパティ

flex-basis ã¯ã€ãã®ã‚¢ã‚¤ãƒ†ãƒ ã®å¯¸æ³•ã‚’ã€ä½¿ç”¨ã—ãªã„余白ã¯åˆ†é…å¯èƒ½ãªä½™ç™½ã¨ã—ã¦æ®‹ã™ã‚ˆã†ã«å®šç¾©ã—ã¾ã™ã€‚ã“ã®ãƒ—ロパティã®åˆæœŸå€¤ã¯ auto ã§ã€ã“ã®è¨­å®šã§ã¯ãƒ–ラウザーã¯ã‚¢ã‚¤ãƒ†ãƒ ã«å¯¸æ³•ãŒè¨­å®šã•れã¦ã„ã‚‹ã‹ã‚’確èªã—ã¾ã™ã€‚上述ã®ä¾‹ã§ã¯ã€ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ãŒ 100 ピクセルã®å¹…ã«è¨­å®šã•れã¦ã„ã¾ã™ã€‚ã“れ㌠flex-basis ã¨ã—ã¦ä½¿ã‚れã¾ã™ã€‚

アイテムã«å¯¸æ³•ãŒè¨­å®šã•れã¦ã„ãªã„å ´åˆã¯ã€ãã®å†…容ã®å¤§ãã•㌠flex-basis ã¨ã—ã¦ä½¿ã‚れã¾ã™ã€‚display: flex を親è¦ç´ ã«è¨­å®šã™ã‚‹ã ã‘ã§ã€ã™ã¹ã¦ã®ãƒ•レックスアイテムãŒãã®ã‚¢ã‚¤ãƒ†ãƒ ã®å†…容を表示ã™ã‚‹ã®ã«å¿…è¦ãªä½™ç™½ã®ã¿ã‚’使用ã—ã¦è¡Œã®ä¸­ã«æ•´åˆ—ã—ã¦ã„ãŸã®ã¯ã€ã“ã®æŒ™å‹•ã®ãŸã‚ã§ã™ã€‚

flex-grow プロパティ

flex-grow ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã‚’æ­£ã®æ•´æ•°ã«è¨­å®šã™ã‚‹ã¨ã€åˆ†é…å¯èƒ½ãªä½™ç™½ãŒã‚ã‚‹å ´åˆã€ãƒ•レックスアイテム㯠flex-basis ã‹ã‚‰ä¸»è»¸ã«æ²¿ã£ã¦ä¼¸ã³ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚アイテムãŒãã®è»¸ã®åˆ†é…å¯èƒ½ãªä½™ç™½ã‚’ã™ã¹ã¦å ã‚るよã†ã«ä¼¸ã³ã‚‹ã‹ã€åˆ†é…å¯èƒ½ãªä½™ç™½ã®ä¸€éƒ¨ã ã‘ã‚’å ã‚るよã†ã«ä¼¸ã³ã‚‹ã‹ã¯ã€ä»–ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚‚伸ã³ã‚‹ã“ã¨ãŒè¨±å¯ã•れã¦ã„ã‚‹ã‹ã©ã†ã‹ã€ãã—ã¦ãれら㮠flex-grow プロパティã®å€¤ã«ã‚ˆã£ã¦æ±ºã¾ã‚Šã¾ã™ã€‚

æ­£ã®å€¤ã‚’æŒã¤å„アイテムã¯ã€ flex-grow 値ã«åŸºã¥ã„ã¦åˆ†é…å¯èƒ½ãªä½™ç™½ã®ä¸€éƒ¨ã‚’消費ã—ã¾ã™ã€‚å…ˆã»ã©ã®ä¾‹ã§ã€ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã® flex-grow ã« 1 を設定ã™ã‚‹ã¨ã€åˆ†é…å¯èƒ½ãªä½™ç™½ã¯ã‚¢ã‚¤ãƒ†ãƒ é–“ã§å‡ç­‰ã«åˆ†é…ã•れã€ä¸»è»¸æ–¹å‘ã«ã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã‚’埋ã‚るよã†ã«å¼•ã伸ã°ã•れã¾ã™ã€‚最åˆã®ã‚¢ã‚¤ãƒ†ãƒ ã® flex-grow ã« 2 を設定ã—ã€ã»ã‹ã®ã‚¢ã‚¤ãƒ†ãƒ ã«ã¯ 1 を設定ã—ãŸå ´åˆã€åˆè¨ˆãŒ 4 ã¤ã®éƒ¨åˆ†ã«ãªã‚Šã¾ã™ã€‚最åˆã®ã‚¢ã‚¤ãƒ†ãƒ ã« 2 ã¤åˆ†ï¼ˆå…ˆã»ã©ã®ä¾‹ã§ã¯ 200px 中㮠100px)ãŒä¸Žãˆã‚‰ã‚Œã€æ®‹ã‚Šã® 2 ã¤ã®ã‚¢ã‚¤ãƒ†ãƒ ã« 1 ã¤åˆ†ï¼ˆ200px 中㮠50px)ãšã¤ãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚

flex-shrink プロパティ

flex-grow プロパティãŒä¸»è»¸ä¸Šã®ä½™ç™½ã®è¿½åŠ ã‚’æ‰±ã†ä¸€æ–¹ã§ã€flex-shrink ã¯ä½™ç™½ã®å–りã‚ã’æ–¹ã‚’制御ã—ã¾ã™ã€‚ アイテムをé…ç½®ã™ã‚‹ã®ã«å分ãªä½™ç™½ãŒã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã«ãªãã€flex-shrink ã«æ­£ã®æ•´æ•°ãŒè¨­å®šã•れã¦ã„れã°ã€ã‚¢ã‚¤ãƒ†ãƒ ã¯ flex-basis よりもå°ã•ããªã‚Šã¾ã™ã€‚flex-grow ã¨åŒæ§˜ã«ã€ã‚るアイテムã®åŽç¸®ã™ã‚‹ã‚¹ãƒ”ードを他ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚ˆã‚Šæ—©ãã™ã‚‹ãŸã‚ã«ã€ç•°ãªã‚‹å€¤ã‚’設定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ã¤ã¾ã‚Š flex-shrink ã«ã‚ˆã‚Šå¤§ããªå€¤ãŒè¨­å®šã•れã¦ã„るアイテムã¯ã€ä»–ã®ã‚ˆã‚Šå°ã•ãªå€¤ãŒè¨­å®šã•れã¦ã„る兄弟è¦ç´ ã‚ˆã‚Šã‚‚æ—©ãåŽç¸®ã—ã¾ã™ã€‚

アイテム㯠min-content ã®ã‚µã‚¤ã‚ºã¾ã§ç¸®å°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®æœ€å°ã‚µã‚¤ã‚ºã¯ã€å®Ÿéš›ã«èµ·ã“ã‚‹åŽç¸®é‡ã‚’計算ã™ã‚‹éš›ã«è€ƒæ…®ã•れるãŸã‚〠flex-shrink 㯠flex-grow よりも挙動ãŒå®‰å®šã—ãªã„よã†ã«è¦‹ãˆã¦ã—ã¾ã†å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ãã®ãŸã‚ã€ãã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ãŒã©ã®ã‚ˆã†ã«å‹•ãã‹ã«ã¤ã„ã¦ã®è©³ç´°ã¯ã€ä¸»è»¸æ–¹å‘ã®ãƒ•ãƒ¬ãƒƒã‚¯ã‚¹ã‚¢ã‚¤ãƒ†ãƒ ã®æ¯”率ã®åˆ¶å¾¡ã®è¨˜äº‹ã«æ›¸ã‹ã‚Œã¦ã„ã¾ã™ã€‚

メモ: flex-grow ã‚„ flex-shrink ã«æŒ‡å®šã™ã‚‹å€¤ã¯æ¯”率ã§ã™ã€‚一般的ã«ã¯ã€ãŸã¨ãˆã°ã‚るアイテムを他㮠flex: 1 1 200px ã«è¨­å®šã—ãŸã‚¢ã‚¤ãƒ†ãƒ ã‚ˆã‚Š 2 å€ã®æ¯”çŽ‡ã§æ‹¡å¤§ã•ã›ãŸã„ã¨ãã«ã¯ã€ flex: 2 1 200px を設定ã—ã¾ã™ã€‚ã—ã‹ã—ã€æœ›ã‚€ãªã‚‰ã° flex: 10 1 200px 㨠flex: 20 1 200px ã¨ã„ã†æ›¸ã方もã§ãã¾ã™ã€‚

flex プロパティã®ä¸€æ‹¬æŒ‡å®šã®å€¤

flex-growã€flex-shrinkã€flex-basis ã®å„プロパティを個別ã«ä½¿ã†ã‚±ãƒ¼ã‚¹ã¯ç¨€ã§ã‚りã€ãã®ã‹ã‚り㫠flex 一括指定プロパティã§ã¾ã¨ã‚ã¦æŒ‡å®šã•れるã“ã¨ãŒå¤šã„ã§ã—ょã†ã€‚flex 一括指定プロパティã¯ã€flex-growã€flex-shrinkã€flex-basis ã®é †ã« 3 ã¤ã®å€¤ã‚’設定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

以下ã®ãƒ©ã‚¤ãƒ–サンプルã§ã¯ã€flex ä¸€æ‹¬æŒ‡å®šãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã®æ§˜ã€…ãªå€¤ã‚’試ã›ã‚‹ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™ã€‚ 最åˆã®å€¤ãŒ flex-grow ã§ã‚ã‚Šã€æ­£ã®å€¤ã‚’指定ã™ã‚‹ã“ã¨ã§ã‚¢ã‚¤ãƒ†ãƒ ãŒå¼•ã伸ã°ã•れるよã†ã«ãªã‚Šã¾ã™ã€‚2 番目ã®å€¤ã¯ flex-shrink ã§ã™ã€‚æ­£ã®å€¤ã«ã‚ˆã‚Šã‚¢ã‚¤ãƒ†ãƒ ãŒåŽç¸®ã§ãるよã†ã«ãªã‚Šã¾ã™ãŒã€ã“れã¯ã‚¢ã‚¤ãƒ†ãƒ ã®å¯¸æ³•ã®åˆè¨ˆãŒä¸»è»¸ã‚’ã‚ãµã‚Œã‚‹å ´åˆã«ã®ã¿èµ·ã“りã¾ã™ã€‚最後ã®å€¤ãŒ flex-basis ã¨ãªã‚Šã€ã‚¢ã‚¤ãƒ†ãƒ ãŒä¼¸ç¸®ã™ã‚‹éš›ã®åŸºæº–値ã¨ãªã‚Šã¾ã™ã€‚

html
<div class="box">
  <div class="one">One</div>
  <div class="two">Two</div>
  <div class="three">Three</div>
</div>
css
.box > * {
  border: 2px solid rgb(96 139 168);
  border-radius: 5px;
  background-color: rgb(96 139 168 / 0.2);
}

.box {
  border: 2px dotted rgb(96 139 168);
  display: flex;
}

.one {
  flex: 1 1 auto;
}

.two {
  flex: 1 1 auto;
}

.three {
  flex: 1 1 auto;
}

ã¾ãŸã€ã»ã¨ã‚“ã©ã®ç”¨é€”ã‚’ã‚«ãƒãƒ¼ã§ãã‚‹ã„ãã¤ã‹ã®å®šç¾©æ¸ˆã¿ã®ä¸€æ‹¬æŒ‡å®šå€¤ãŒã‚りã¾ã™ã€‚ ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ä¸­ã§ä½¿ç”¨ã•れã¦ã„ã‚‹ã®ã‚’度々見ã‹ã‘ã‚‹ã§ã—ょã†ã—ã€ã»ã¨ã‚“ã©ã®å ´åˆã§ã“れらã®å€¤ã§å分ã§ã—ょã†ã€‚ 定義済ã¿ã®å€¤ã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚

  • flex: initial
  • flex: auto
  • flex: none
  • flex: <æ­£ã®æ•°>

initial ã®ã¯ CSS 全般ã®å€¤ã§ã€ãƒ—ロパティã®åˆæœŸå€¤ã‚’表ã—ã¾ã™ã€‚ flex: initial を設定ã™ã‚‹ã¨ã€ 3 ã¤ã®å€‹åˆ¥æŒ‡å®šãƒ—ロパティã®åˆæœŸå€¤ã«ãƒªã‚»ãƒƒãƒˆã•れã€flex: 0 1 auto ã¨åŒã˜ã«ãªã‚Šã¾ã™ã€‚ã“ã®å ´åˆ flex-grow 㯠0 ã¨ãªã‚‹ãŸã‚ã€ã‚¢ã‚¤ãƒ†ãƒ ãŒ flex-basis よりも大ãããªã‚‹ã“ã¨ã¯ã‚りã¾ã›ã‚“。flex-shrink 㯠1 ãªã®ã§ã€å¿…è¦ãªå ´åˆã«ã¯ã¯ã¿å‡ºã•ãšã«åŽç¸®ã—ã¾ã™ã€‚ flex-basis ã®å€¤ã¯ auto ã§ã™ã€‚アイテムã«è¨­å®šã•れã¦ã„る主軸方å‘ã®å¯¸æ³•ã‹ã€ã¾ãŸã¯ã‚¢ã‚¤ãƒ†ãƒ ã®å†…容ã®å¯¸æ³•ãŒãƒ•レックスアイテムã®å¯¸æ³•ã¨ã—ã¦ä½¿ç”¨ã•れã¾ã™ã€‚

flex: auto を使用ã™ã‚‹ã¨ã€ flex: 1 1 auto を使用ã™ã‚‹ã“ã¨ã¨åŒç­‰ã«ãªã‚Šã¾ã™ã€‚ã“れ㯠flex: initial ã¨ä¼¼ã¦ã„ã¾ã™ãŒã€ã‚¢ã‚¤ãƒ†ãƒ ãŒã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã‚’埋ã‚るよã†ã«å¼•ã伸ã°ã•れる点を除ãã¾ã™ã€‚

flex: none を使用ã™ã‚‹ã¨ã€å…¨ã伸縮性ã®ãªã„フレックスアイテムを作æˆã—ã¾ã™ã€‚ã“れ㯠flex: 0 0 auto ã¨åŒã˜ã§ã™ã€‚アイテムã¯ä¼¸ã³ç¸®ã¿ã›ãšã«ã€flex-basis ㌠auto ã®ãƒ•レックスボックスã¨ã—ã¦é…ç½®ã•れã¾ã™ã€‚

ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«å†…ã§ã¯ã€flex: 1 ã‚„ flex: 2 ã®ã‚ˆã†ãªè¨­å®šã‚’よãç›®ã«ã™ã‚‹ã§ã—ょã†ã€‚ã“れã¯ãれãžã‚Œ flex: 1 1 0 ã¾ãŸã¯ flex: 2 1 0 ã¨æ›¸ãã®ã¨åŒæ§˜ã§ã™ã€‚アイテム㯠flex-basis: 0 ã«ã‚ˆã£ã¦æœ€å°ã‚µã‚¤ã‚ºã«ãªã‚Šã€ãã®å¾Œåˆ©ç”¨å¯èƒ½ãªä½™ç™½ã‚’埋ã‚るよã†ã«æ¯”例ã—ã¦æ‹¡å¤§ã—ã¾ã™ã€‚ã“ã®å ´åˆã€ã‚¢ã‚¤ãƒ†ãƒ ã¯æœ€å°ã‚µã‚¤ã‚ºã‹ã‚‰å§‹ã¾ã‚‹ãŸã‚ã€flex-shrink ã®å€¤ 1 ã¯å†—é•·ã§ã™ã€‚アイテムã«ã¯ãƒ•レックスコンテナーã‹ã‚‰æº¢ã‚Œå‡ºã‚‹å¯èƒ½æ€§ã®ã‚るサイズãŒä¸Žãˆã‚‰ã‚Œã¦ã„ãªã„ã‹ã‚‰ã§ã™ã€‚

ã“れらã®ä¸€æ‹¬æŒ‡å®šå€¤ã«ã¤ã„ã¦ã€ä»¥ä¸‹ã®ä¾‹ã§è©¦ã—ã¦ã¿ã¦ãã ã•ã„。

html
<div class="box">
  <div class="one">One</div>
  <div class="two">Two</div>
  <div class="three">Three</div>
</div>
css
.box > * {
  border: 2px solid rgb(96 139 168);
  border-radius: 5px;
  background-color: rgb(96 139 168 / 0.2);
}

.box {
  border: 2px dotted rgb(96 139 168);
  display: flex;
}

.one {
  flex: 1;
}

.two {
  flex: 1;
}

.three {
  flex: 1;
}

é…ç½®ã€ä½ç½®æƒãˆã€ã‚¢ã‚¤ãƒ†ãƒ é–“ã®è‡ªç”±ä½™ç™½ã®åˆ†é…

フレックスボックスã®ä¸»ãªæ©Ÿèƒ½ã¯ã€ä¸»è»¸ã¨äº¤å·®è»¸ã®ã‚¢ã‚¤ãƒ†ãƒ ã®é…ç½®ã¨ä½ç½®æƒãˆã€ãã—ã¦ãƒ•レックスアイテム間ã®ä½™ç™½ã®åˆ†é…ã§ã™ã€‚ã“れらã®ãƒ—ロパティã¯ã‚¢ã‚¤ãƒ†ãƒ ãã®ã‚‚ã®ã§ã¯ãªãã€ãƒ•レックスコンテナーã«è¨­å®šã™ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。

align-items

align-items プロパティã¯ã€äº¤å·®è»¸ã«ãŠã‘るアイテムã®é…置を行ã„ã¾ã™ã€‚

ã“ã®ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã®æ—¢å®šå€¤ã¯ stretch ã§ã‚りã€ãƒ•ãƒ¬ãƒƒã‚¯ã‚¹ã‚¢ã‚¤ãƒ†ãƒ ã¯æ—¢å®šã§ã¯ãƒ•レックスコンテナーã®é«˜ã•(flex-direction ㌠column ã¾ãŸã¯ column-reverse ã«è¨­å®šã•れã¦ã„ã‚‹å ´åˆã¯å¹…)ã«å¼•ã伸ã°ã•れã¾ã™ã€‚ã“ã®é«˜ã•ã¯ã‚³ãƒ³ãƒ†ãƒŠãƒ¼å†…ã§æœ€ã‚‚背ã®é«˜ã„アイテムã‹ã€ãƒ•レックスコンテナーãã®ã‚‚ã®ã«è¨­å®šã•れã¦ã„るサイズã‹ã‚‰æ±ºã¾ã‚Šã¾ã™ã€‚

アイテムをフレックスコンテナーã®å…ˆé ­å´ã«æƒãˆã‚‹ãŸã‚ã«ã¯ align-items ã« flex-start ã¾ãŸã¯å˜ã« start を設定ã—ã€æœ«å°¾å´ã«æƒãˆã‚‹ãŸã‚ã«ã¯ flex-end ã¾ãŸã¯å˜ã« end ã‚’ã€ä¸­å¤®æƒãˆã«ã™ã‚‹ã«ã¯ center を設定ã—ã¾ã™ã€‚ 以下ã®ä¾‹ã§è©¦ã—ã¦ã¿ã¾ã—ょã†ã€‚ã“ã®ä¾‹ã§ã¯ã€ã‚³ãƒ³ãƒ†ãƒŠãƒ¼å†…ã§ã‚¢ã‚¤ãƒ†ãƒ ãŒã©ã®ã‚ˆã†ã«ç§»å‹•ã™ã‚‹ã‹ã‚ã‹ã‚Šã‚„ã™ãã™ã‚‹ãŸã‚フレックスコンテナーã«é«˜ã•を設定ã—ã¦ã„ã¾ã™ã€‚align-items ã«ä»¥ä¸‹ã®å€¤ã‚’設定ã—ãŸã¨ãã«ãれãžã‚Œä½•ãŒèµ·ã“ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„。

  • stretch
  • flex-start
  • flex-end
  • start
  • end
  • center
  • baseline
  • last baseline
html
<div class="box">
  <div>One</div>
  <div>Two</div>
  <div>Three <br />ã«ã¯è¿½åŠ ã®<br />テキストãŒ<br />ã‚りã¾ã™</div>
</div>
css
.box > * {
  border: 2px solid rgb(96 139 168);
  border-radius: 5px;
  background-color: rgb(96 139 168 / 0.2);
}

.box {
  width: 500px;
  height: 130px;
  border: 2px dotted rgb(96 139 168);
  display: flex;
  align-items: flex-start;
}

align-items ã¯ãƒ•レックスコンテナーã«è¨­å®šã—ã€ã™ã¹ã¦ã®ãƒ•レックスアイテムã«å½±éŸ¿ã—ã¾ã™ã€‚ã‚るフレックスアイテムを他ã¨ç•°ãªã‚‹é…ç½®ã«ã—ãŸã„å ´åˆã¯ã€ align-self を設定ã—ã¦ãã ã•ã„。

justify-content

justify-content プロパティã¯ã€ä¸»è»¸ã«ãŠã‘るアイテムã®é…ç½®ã€ã¤ã¾ã‚Š flex-direction ã§è¨­å®šã•ã‚ŒãŸæ–¹å‘ã«ãŠã‘ã‚‹é…置を行ã„ã¾ã™ã€‚åˆæœŸå€¤ã¯ flex-start ã§ã€ã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã®å…ˆé ­å´ã‹ã‚‰ã‚¢ã‚¤ãƒ†ãƒ ãŒä¸¦ã¹ã‚‰ã‚Œã¾ã™ã€‚flex-end を設定ã™ã‚‹ã“ã¨ã§æœ«å°¾ã‹ã‚‰ã€center を設定ã™ã‚‹ã“ã¨ã§ä¸­å¤®ã«ä¸¦ã¹ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚

ã¾ãŸã€space-between を使用ã—ã¦ã€ã‚¢ã‚¤ãƒ†ãƒ ã‚’é…ç½®ã—ãŸã‚ã¨ã®æ®‹ã‚Šã®ä½™ç™½ã®ã™ã¹ã¦ã‚’アイテム間ã§å‡ç­‰ã«æŒ¯ã‚Šåˆ†ã‘られã€ã“れã«ã‚ˆã£ã¦åŒã˜å¹…ã®ç©ºç™½ãŒãれãžã‚Œã‚¢ã‚¤ãƒ†ãƒ ã®é–“ã«æŒ¿å…¥ã•れã¾ã™ã€‚å„アイテムã®å·¦å³ã«åŒã˜ã ã‘ã®ä½™ç™½ã‚’空ã‘ã‚‹ã«ã¯ã€space-around を使用ã—ã¾ã™ã€‚space-around ã§ã¯ã€ã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã®ä¸¡ç«¯ã«ã¯ã€ã‚¢ã‚¤ãƒ†ãƒ ã®é–“éš”ã®åŠåˆ†ã®å¤§ãã•ã®ä½™ç™½ãŒè¨­ã‘られã¾ã™ã€‚両端ã«ã‚‚åŒã˜ã ã‘ã®ä½™ç™½ã‚’設ã‘ã‚‹ã«ã¯ã€space-evenly を使用ã—ã¾ã™ã€‚ã“ã®å ´åˆã¯ã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã®ä¸¡ç«¯ã«ãƒ•ルサイズ (アイテムã®é–“éš”ã¨åŒã˜å¤§ãã•) ã®ä½™ç™½ãŒè¨­ã‘られã¾ã™ã€‚

ライブサンプルã§ã€ä»¥ä¸‹ã® justify-content ã®å€¤ã‚’試ã—ã¦ã¿ã¾ã—ょã†ã€‚

  • start
  • end
  • left
  • right
  • normal
  • flex-start
  • flex-end
  • center
  • space-around
  • space-between
  • space-evenly
  • stretch
html
<div class="box">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>
css
.box > * {
  border: 2px solid rgb(96 139 168);
  border-radius: 5px;
  background-color: rgb(96 139 168 / 0.2);
}

.box {
  border: 2px dotted rgb(96 139 168);
  display: flex;
  justify-content: flex-start;
}

フレックスコンテナー内ã®ã‚¢ã‚¤ãƒ†ãƒ ã®é…ç½®ã®è¨˜äº‹ã§ã¯ã€ã“れらã®ãƒ—ロパティãŒã©ã®ã‚ˆã†ã«å‹•作ã™ã‚‹ã®ã‹æ·±ãç†è§£ã™ã‚‹ãŸã‚ã«ã€ã‚ˆã‚Šè©³ç´°ã«è¿°ã¹ã¦ã„ã¾ã™ã€‚ã—ã‹ã—上述ã®ç°¡æ½”ãªä¾‹ã§ã‚‚ã»ã¨ã‚“ã©ã®ç”¨é€”ã§å½¹ã«ç«‹ã¤ã§ã—ょã†ã€‚

justify-items

justify-items プロパティã¯ã€ãƒ•レックスボックスレイアウトã§ã¯ç„¡è¦–ã•れã¾ã™ã€‚

place-items 㨠place-content

place-items プロパティ㯠align-items 㨠justify-items ã®ä¸€æ‹¬æŒ‡å®šãƒ—ロパティã§ã™ã€‚フレックスコンテナーã«è¨­å®šã™ã‚‹ã¨ã€é…ç½®ã¯è¨­å®šã•れã¾ã™ãŒä½ç½®ãžã‚ãˆã¯è¨­å®šã•れãšã€ justify-items ã¯ãƒ•レックスボックスã§ã¯ç„¡è¦–ã•れã¾ã™ã€‚

別ãªä¸€æ‹¬æŒ‡å®šãƒ—ロパティã¨ã—㦠place-content ãŒã‚りã€ã“れ㯠align-content プロパティ㨠justify-content プロパティを定義ã—ã¾ã™ã€‚ align-content ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã¯æŠ˜ã‚Šè¿”ã—ã®ã‚るフレックスコンテナーã«ã®ã¿åŠ¹æžœãŒã‚りã€ãƒ•レックスコンテナー内ã®ã‚¢ã‚¤ãƒ†ãƒ ã®é…ç½®ã§è§£èª¬ã—ã¦ã„ã¾ã™ã€‚

次ã®ã‚¹ãƒ†ãƒƒãƒ—

ã“ã®è¨˜äº‹ã§ã€ãƒ•レックスボックスã®åŸºæœ¬çš„ãªç‰¹å¾´ã«ã¤ã„ã¦ã®ç†è§£ãŒã§ããŸã¨æ€ã„ã¾ã™ã€‚次ã®è¨˜äº‹ã§ã¯ãƒ•レックスボックスã¨ä»–ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆæ–¹æ³•ã®é–¢ä¿‚を見ã¦ã„ãã¾ã™ã€‚

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy