CSS Subgridã®ãããŒæ¹åã®ç¶æ¿ãçè§£ããããã®å æ¬çãªã¬ã€ããã°ããŒãã«ãªWebéçºã«ãããŠãå ¥ãåã°ãªããã芪ã®åãã«ã©ã®ããã«é©å¿ããããæ¢ããŸãã
CSS Subgridã®ãããŒæ¹åïŒå ¥ãåã°ãªããã«ãããæ¹åã®ç¶æ¿ãçè§£ãã
çµ¶ããé²åããWebãã¶ã€ã³ã®äžçã«ãããŠãCSS Gridã¯è€éã§ã¬ã¹ãã³ã·ããªã¬ã€ã¢ãŠããäœæããããã®åŒ·åãªããŒã«ãšããŠç»å ŽããŸãããCSS Subgridã®åºçŸã«ãããã°ãªããã·ã¹ãã ã®èœåã¯ããã«åŒ·åãããç¹ã«ãã¹ããããã°ãªããã芪ã³ã³ããããããããã£ãç¶æ¿ããé©å¿ããæ¹æ³ã«ãããŠé¡èã§ãããã®ç¶æ¿ã®éèŠã§ãããªãããæã«èŠéããããã¡ãªåŽé¢ããããŒæ¹åã§ãããã®èšäºã§ã¯ãCSS Subgridã®ãããŒæ¹åãã©ã®ããã«æ©èœããã®ãããããã°ããŒãã«ãªWebéçºã«ã©ã®ãããªåœ±é¿ãäžããã®ãããããŠãã®åã瀺ãããã®å®è·µçãªäŸãæãäžããŠãããŸãã
CSS Subgridãšã¯äœãïŒ
ãããŒæ¹åã«ã€ããŠæãäžããåã«ãSubgridãäœãããããããç°¡åã«åŸ©ç¿ããŸããããSubgridã¯CSS Gridã®åŒ·åãªæ¡åŒµæ©èœã§ãããã°ãªããã¢ã€ãã å ã®ã¢ã€ãã ãç¬èªã®ç¬ç«ããã°ãªããã³ã³ããã¹ããäœæããã®ã§ã¯ãªãããã®èŠªã°ãªããã®ã°ãªããã©ã€ã³ã«èªèº«ãæŽåãããããšãå¯èœã«ããŸããããã¯ããã¹ããããã°ãªãããç¥å ã®ãã©ãã¯ãµã€ãºãé çœ®ãæ£ç¢ºã«ç¶æ¿ã§ããããšãæå³ããè€éãªã³ã³ããŒãã³ãå šäœã§ããäžè²«æ§ã®ãã調åã®ãšããã¬ã€ã¢ãŠãã«ã€ãªãããŸãã
ç»åãã¿ã€ãã«ã説ææãæã€ã«ãŒãã³ã³ããŒãã³ããæ³åããŠã¿ãŠãã ããããã®ã«ãŒãããã倧ããªã°ãªããå ã«é 眮ãããå ŽåãSubgridã¯ã«ãŒãã®å éšèŠçŽ ãã¡ã€ã³ã°ãªããã®åãè¡ã«æããããšãå¯èœã«ããã«ãŒãèªäœããªãµã€ãºããããç§»åããããããŠãå®ç§ãªé 眮ãä¿èšŒããŸãã
ã°ãªããã®ãããŒæ¹åãçè§£ãã
CSS Gridã«ããããããŒæ¹åãšã¯ãã°ãªããã³ã³ããå
ã«ã¢ã€ãã ãé
眮ãããé åºãæããŸããããã¯äž»ã«grid-auto-flowããããã£ã«ãã£ãŠããããŠããæ ¹æ¬çã«ã¯ããã¥ã¡ã³ããšãã®èŠªèŠçŽ ã®writing-modeã«ãã£ãŠå¶åŸ¡ãããŸãã
æšæºçãªæ°Žå¹³æžåæ¹åïŒè±èªãã»ãšãã©ã®è¥¿æŽèšèªãªã©ïŒã§ã¯ãã°ãªããã¢ã€ãã ã¯å·Šããå³ãžãäžããäžãžãšæµããŸããéã«ãåçŽæžåæ¹åïŒäŒçµ±çãªã¢ã³ãŽã«èªãäžéšã®æ±ã¢ãžã¢èšèªãªã©ïŒã§ã¯ãã¢ã€ãã ã¯äžããäžãžããããŠå³ããå·ŠãžãšæµããŸãã
ãããŒæ¹åã«åœ±é¿ãäžããäž»èŠãªããããã£ã¯ä»¥äžã®éãã§ãïŒ
grid-auto-flow: ãã®ããããã£ã¯ãèªåé 眮ãããã¢ã€ãã ãã°ãªããã«ã©ã®ããã«è¿œå ãããããæ±ºå®ããŸããããã©ã«ãå€ã¯rowã§ãã¢ã€ãã ã¯æ¬¡ã®è¡ã«ç§»åããåã«å·Šããå³ãžè¡ãåããŠãããŸããcolumnã¯ãããé転ãããæ¬¡ã®åã«ç§»åããåã«äžããäžãžåãåããŠãããŸããwriting-mode: ãã®CSSããããã£ã¯ãããã¹ãã®ãããŒãšã¬ã€ã¢ãŠãã®æ¹åãå®çŸ©ããŸããäžè¬çãªå€ã«ã¯horizontal-tbïŒæ°Žå¹³ãäžããäžãžïŒããvertical-rlïŒåçŽãå³ããå·ŠãžïŒãvertical-lrïŒåçŽãå·Šããå³ãžïŒãªã©ã®æ§ã ãªåçŽã¢ãŒãããããŸãã
Subgridãšæ¹åã®ç¶æ¿
ãããSubgridã®ç䟡ãçºæ®ãããå Žæã§ãããç¹ã«åœéåã«ãããŠéèŠã§ããã°ãªããã¢ã€ãã ãïŒdisplay: subgridã䜿çšããŠïŒãµãã°ãªããã³ã³ããã«ãªããšã芪ã°ãªããããããããã£ãç¶æ¿ããŸããéèŠãªããšã«ã芪ã°ãªããã®ãããŒæ¹åã¯ãµãã°ãªããã®ãããŒæ¹åã«åœ±é¿ãäžããŸãã
ãããåè§£ããŠèŠãŠãããŸãããïŒ
1. ããã©ã«ãã®æ°Žå¹³ãããŒ
writing-mode: horizontal-tbã®å
žåçãªèšå®ã§ã¯ã芪ã°ãªããã¯ãã®ã¢ã€ãã ãå·Šããå³ãžãäžããäžãžãšé
眮ããŸãããã®èŠªã°ãªããå
ã®åèŠçŽ ããµãã°ãªããã§ããå Žåããã®ã¢ã€ãã ã¯ãã®æ°Žå¹³ãããŒãç¶æ¿ããŸããã€ãŸãããµãã°ãªããå
ã®ã¢ã€ãã ãå·Šããå³ãžãšé
眮ãããŸãã
äŸïŒ
2ã€ã®åãæã€èŠªã°ãªãããèããŠã¿ãŸãããããã®èŠªã°ãªããå
ã®divãdisplay: subgridã«èšå®ãããæåã®åã«é
眮ãããŠããŸãããã®ãµãã°ãªããèªäœã«3ã€ã®ã¢ã€ãã ãå«ãŸããŠããå Žåããããã¯èªç¶ã«ãã®ãµãã°ãªããã«å²ãåœãŠãããã¹ããŒã¹å
ã§å·Šããå³ãžãšæµãã芪ã°ãªããã®åæ§é ã«æŽåããŸãã
2. åçŽæžåæ¹åãšSubgrid
æ¬åœã®éæ³ã¯ãåçŽæžåæ¹åãå°å
¥ãããšãã«èµ·ãããŸãã芪ã°ãªãããwriting-mode: vertical-rlïŒäŒçµ±çãªæ±ã¢ãžã¢ã®ã¿ã€ãã°ã©ãã£ã§äžè¬çïŒã§åäœããŠããå Žåããã®ã¢ã€ãã ã¯äžããäžãžããããŠåãè¶ããŠå³ããå·ŠãžãšæµããŸãããã®èŠªã°ãªããå
ã®åèŠçŽ ããµãã°ãªããã§ããå Žåãããã¯ãã®åçŽãããŒæ¹åãç¶æ¿ããŸãã
äŸïŒ
writing-mode: vertical-rlã䜿çšããæ¥æ¬èªã®ãŠã§ããµã€ãçšã«èšèšããã芪ã°ãªãããæ³åããŠã¿ãŠãã ãããäž»èŠãªã³ã³ãã³ãã¯äžæ¹åã«æµããŸããããŠããã®èŠªã°ãªããã®ã»ã«ã®1ã€ã«è€éãªããã²ãŒã·ã§ã³ã¡ãã¥ãŒãååãªã¹ãããããšããŸãããã®ãã¹ããããæ§é ããµãã°ãªããã§ããå Žåããã®ã¢ã€ãã ïŒäŸãã°ãåã
ã®ããã²ãŒã·ã§ã³ãªã³ã¯ãååã«ãŒãïŒã芪ã®ãããŒãåæ ããŠãåçŽã«äžããäžãžããããŠåãè¶ããŠå³ããå·ŠãžãšæµããŸãã
ãã®ãããŒæ¹åã®èªåçãªé©å¿ã¯ã以äžã«ãšã£ãŠå€§ããªå©ç¹ãšãªããŸãïŒ
- å€èšèªãŠã§ããµã€ã: éçºè ã¯ãåºç¯ãªæ¡ä»¶ä»ãCSSãè€éãªJavaScriptã®åé¿çãå¿ èŠãšããã«ãç°ãªãèšèªãæžèšäœç³»ã«å¯ŸããŠã¢ã€ãã ã®ãããŒãèªåçã«èª¿æŽãããåäžã§å ç¢ãªã°ãªããæ§é ãäœæã§ããŸãã
- ã°ããŒãã«ã¢ããªã±ãŒã·ã§ã³: ã°ããŒãã«ãªãŠãŒã¶ãŒã察象ã«èšèšããããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã¯ããŠãŒã¶ãŒã®ãã±ãŒã«ã奜ã¿ã®æžåæ¹åã«é¢ä¿ãªããèŠèŠçãªäžè²«æ§ãšè«ççãªã¢ã€ãã ã®é åºãç¶æã§ããŸãã
3. Subgridã§grid-auto-flowãæç€ºçã«èšå®ãã
Subgridã¯writing-modeã«ãã£ãŠæ±ºå®ãããäž»èŠãªãããŒæ¹åãç¶æ¿ããŸãããgrid-auto-flowã䜿çšããŠãµãã°ãªããå
ã®èªåé
眮ã¢ã€ãã ã®é
眮ãæç€ºçã«å¶åŸ¡ããããšãã§ããŸãããã ãããããç¶æ¿ãããæ¹åãšã©ã®ããã«çžäºäœçšããããçè§£ããããšãéèŠã§ãã
- 芪ã°ãªããã®ãããŒã
rowïŒå·Šããå³ïŒã®å Žåããµãã°ãªããã«grid-auto-flow: columnãèšå®ãããšããã®ã¢ã€ãã ã¯ãµãã°ãªããã®é åå ã§åçŽã«ç©ã¿éããããŸãã - 芪ã°ãªããã®ãããŒã
columnïŒåçŽæžåã¢ãŒãã«ããäžããäžïŒã®å Žåããµãã°ãªããã«grid-auto-flow: rowãèšå®ãããšã芪ã®åçŽãããŒ*ã«ãããããã*ããã®ã¢ã€ãã ã¯ãµãã°ãªããã®é åå ã§æ°Žå¹³ã«é 眮ãããŸããããã¯ãã°ããŒãã«å¿åã®ã°ãªããå ã§å±æçãªéžè±ãäœæãã匷åãªæ¹æ³ãšãªãåŸãŸãã
éèŠãªãã€ã³ãïŒ èŠªã°ãªããã®writing-modeã¯ããµãã°ãªããã®*å
šäœç*ãªãããŒæ¹åãæ±ºå®ããäž»èŠãªèŠå ã§ãããããŠgrid-auto-flowã¯ããã®ç¶æ¿ãããæ¹åå
ã§ã®ã¢ã€ãã ã®è©°ãèŸŒã¿æ¹ã調æŽããŸãã
å®è·µçãªåœ±é¿ãšãŠãŒã¹ã±ãŒã¹
Subgridã«ãããããŒæ¹åã®ç¶æ¿ã¯ãä¿å®å¯èœã§ã°ããŒãã«å¿åã®Webã¢ããªã±ãŒã·ã§ã³ãäœæããäžã§ãéå€§ãªæå³ãæã¡ãŸãã
1. äžè²«ããåœéå
åŸæ¥ãç°ãªãæžåã¢ãŒãããµããŒãããã«ã¯ãCSSãè€è£œãããè€éãªã»ã¬ã¯ã¿ã䜿çšãããããå¿
èŠããã°ãã°ãããŸãããSubgridã䜿ãã°ãåäžã®HTMLæ§é ãåªé
ã«é©å¿ã§ããŸããäŸãã°ãããã·ã¥ããŒãã«ã¡ã€ã³ã³ã³ãã³ããšãªã¢ãšãµã€ãããŒããããšããŸããã¡ã€ã³ã³ã³ãã³ããšãªã¢ãã¢ã€ãã ãæ°Žå¹³ã«æµããã°ãªããã䜿çšãããµã€ãããŒãïŒç°ãªãwriting-modeãç¹å®ã®ã¬ã€ã¢ãŠãèŠä»¶ã«ããïŒã¢ã€ãã ãåçŽã«æµããã°ãªããã䜿çšããå ŽåãSubgridã¯åãã¹ããããã³ã³ããŒãã³ããèªèº«ã®äž»èŠãªãããŒãå°éãã€ã€ã芪ã°ãªããã®æ§é ç·ã«æŽåããããšãä¿èšŒããŸãã
2. è€éãªã³ã³ããŒãã³ãã®èšèš
ããŒã¿ããŒãã«ããã©ãŒã ã¬ã€ã¢ãŠãã®ãããªè€éãªUIã³ã³ããŒãã³ããèããŠã¿ãŸããããããŒãã«ããããŒã®ã»ã«ã¯ã芪ã°ãªããã®åã«æŽåãããããããŸãããããŒãã«ããã£ããµãã°ãªããã§ããã°ããã®è¡ãšã»ã«ã¯å
šäœã®ãããŒãç¶æ¿ããŸããwriting-modeã倿ŽããããšãããŒãã«ããããŒãšããã£ã¯Subgridãä»ããŠèªç¶ã«ã¢ã€ãã ã®ãããŒãåé
眮ãã倧å
ã®ã°ãªããæ§é ãšã®é¢ä¿ãç¶æããŸãã
äŸïŒè£œåã«ã¿ãã°
ããªããeã³ããŒã¹ãµã€ããæ§ç¯ããŠãããšããŸããããã¡ã€ã³ããŒãžã¯ååã«ãŒãã衚瀺ããã°ãªããã§ããåååã«ãŒãã¯ã³ã³ããŒãã³ãã§ããååã«ãŒãã®äžã«ã¯ãç»åãååã¿ã€ãã«ãäŸ¡æ ŒããããŠãã«ãŒãã«è¿œå ããã¿ã³ããããŸããååã«ãŒãèªäœããµãã°ãªããã§ãããããŒãžå šäœãæšæºçãªæ°Žå¹³ãããŒã䜿çšããŠããå Žåãã«ãŒãå ã®èŠçŽ ãæ°Žå¹³ã«æµããŸãã
ããŠãç¹å®ã®ããã¢ãŒã·ã§ã³ãããŒããã®ã¿ã€ãã«ã®ããã«åçŽãªããã¹ãæ¹åã䜿çšãããã®ãããŒãã°ãªããã»ã«å ã«é 眮ãããã·ããªãªãæ³åããŠã¿ãŠãã ããããã®ãããŒã³ã³ããŒãã³ãããµãã°ãªããã§ããã°ããã®å éšèŠçŽ ïŒã¿ã€ãã«ãã³ãŒã«ãã¥ã¢ã¯ã·ã§ã³ãªã©ïŒã¯èªåçã«åçŽã«æµãã芪ã°ãªããã®æ§é ç·ã«æŽåãã€ã€ãèªèº«ã®å éšçãªåçŽé åºãç¶æããŸãã
3. ã·ã³ãã«åãããã¬ã¹ãã³ã·ããã¶ã€ã³
ã¬ã¹ãã³ã·ããã¶ã€ã³ã¯ãç»é¢ãµã€ãºã«åºã¥ããŠã¬ã€ã¢ãŠãã倿ŽããããšããããããŸããSubgridã®ãããŒæ¹åã®ç¶æ¿ã¯ãããç°¡çŽ åããŸããåºæ¬ã®ã°ãªããã¬ã€ã¢ãŠããå®çŸ©ããã¡ãã£ã¢ã¯ãšãªã䜿çšããŠèŠªã³ã³ããã®writing-modeã倿Žããããšãã§ããŸãããããã®ã³ã³ããå
ã®ãµãã°ãªããã¯ããã¹ããããåã¬ãã«ã§æç€ºçãªèª¿æŽãå¿
èŠãšããã«ãèªåçã«ã¢ã€ãã ã®ãããŒã調æŽããŸãã
課é¡ãšèæ ®äºé
匷åã§ããäžæ¹ã§ãSubgridã®ãããŒæ¹åãæ±ãéã«ã¯ãããã€ãå¿ã«çããŠããã¹ãç¹ããããŸãïŒ
- ãã©ãŠã¶ã®ãµããŒã: Subgridã¯æ¯èŒçæ°ããæ©èœã§ããã¢ãã³ãã©ãŠã¶ïŒChromeãFirefoxãSafariïŒã§ã®ãµããŒãã¯æ¥éã«æ¡å€§ããŠããŸãããæ¬çªç°å¢ã§äœ¿çšããéã«ã¯çŸåšã®äºææ§ããŒãã«ã確èªããããšãäžå¯æ¬ ã§ããå€ããã©ãŠã¶ã«ã¯ãã©ãŒã«ããã¯ãå¿ èŠã«ãªãå ŽåããããŸãã
writing-modeã®çè§£: CSSã®writing-modeããã£ããçè§£ããããšãéèŠã§ããSubgridã®æåã¯ããã®ç¥å ã®æžåã¢ãŒãã«çŽæ¥é¢é£ããŠããŸããwriting-modeãã¬ã€ã¢ãŠãã«ã©ã®ããã«åœ±é¿ãããã誀解ãããšãäºæãã¬çµæã«ã€ãªããå¯èœæ§ããããŸãã- æç€ºçãããŒãšæé»çãããŒ:
writing-modeã*äž»èŠãª*ãããŒã決å®ããäžæ¹ã§ãgrid-auto-flowã¯ãã®ãããŒå ã§ã®*è©°ãèŸŒã¿æ¹*ãäžæžãã§ããããšãèŠããŠãããŠãã ããããã®äºéæ§ã¯ãæãŸããã¬ã€ã¢ãŠããéæããããã«æ éãªæ€èšãå¿ èŠã§ãã - ãããã°: ä»ã®é«åºŠãªCSSæ©èœãšåæ§ã«ãè€éãªãã¹ããããã°ãªããæ§é ã®ãããã°ã¯å°é£ãªå ŽåããããŸãããã©ãŠã¶ã®éçºè ããŒã«ã¯åªããã°ãªããæ€æ»æ©èœãæäŸããŠãããã¢ã€ãã ã®é 眮ããããŒæ¹åãçè§£ããããã«éåžžã«è²Žéã§ãã
ã°ããŒãã«éçºã®ããã®ãã¹ããã©ã¯ãã£ã¹
ã°ããŒãã«ãªãŠãŒã¶ãŒã®ããã«Subgridã®ãããŒæ¹åã广çã«æŽ»çšããã«ã¯ïŒ
- æè»æ§ãèæ ®ããèšèš: ã¬ã€ã¢ãŠããåºå®ãã¯ã»ã«äœçœ®ã§ã¯ãªããã°ãªããã©ã€ã³ãšãã©ãã¯ã®èгç¹ããèããŠãã ããããã®èãæ¹ã¯ãSubgridã®ååãšèªç¶ã«äžèŽããŸãã
writing-modeãæŠç¥çã«äœ¿çšãã: ã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®æžåã¢ãŒãããµããŒãããå¿ èŠãããããšãããã£ãŠããå Žåã¯ãCSSã¢ãŒããã¯ãã£ã®æ©ã段éã§ããããå®çŸ©ããŠãã ããããã¹ããããã¬ã€ã¢ãŠãã®é©å¿ãšãã倧å€ãªäœæ¥ã¯Subgridã«ä»»ããŸãããã- ã³ã³ãã³ãã®é åºãåªå ãã: èŠèŠçãªãããŒæ¹åã«é¢ä¿ãªããã³ã³ãã³ãã®è«ççãªé åºãæå³çã«æ£ãããŸãŸã§ããããšã確èªããŠãã ãããæ¯æŽæè¡ã¯ãã®è«ççãªé åºã«äŸåããŠããŸãã
- å®éã®ãã±ãŒã«ã§ãã¹ããã: çè«çãªçè§£ã ãã«é Œããªãã§ãã ãããç°ãªãèšèªãæžåã¢ãŒãã®å®éã®ã³ã³ãã³ãã§ã¬ã€ã¢ãŠãããã¹ãããŠãã ããã
- æç¢ºãªãã©ãŒã«ããã¯ãæäŸãã: SubgridããµããŒãããŠããªãå€ããã©ãŠã¶ã®ããã«ãã¬ã€ã¢ãŠããæŽç·ŽãããŠããªããŠããæ©èœçã§èªã¿ããããŸãŸã§ããããšãä¿èšŒããŠãã ããã
Subgridã«ããã¬ã€ã¢ãŠãã®æªæ¥
CSS Subgridãç¹ã«ãã®ãããŒæ¹åã®ç¶æ¿ã¯ãWebã®å®£èšçãªã¬ã€ã¢ãŠãã«ããã倧ããªé£èºãæå³ããŸããããã«ãããéçºè ã¯ããå°ãªãã³ãŒããšè€éãã§ãããå ç¢ã§ãé©å¿æ§ããããåœéåã«å¯Ÿå¿ããã€ã³ã¿ãŒãã§ãŒã¹ãæ§ç¯ããããšãã§ããŸãã
Webã¢ããªã±ãŒã·ã§ã³ããŸããŸãã°ããŒãã«ã«ãªãã«ã€ããŠããã¹ããããã¬ã€ã¢ãŠãã·ã¹ãã ãç°ãªãèªã¿æžãã®æ¹åãçè§£ããé©å¿ããèœåã¯ãåãªãå©äŸ¿æ§ã§ã¯ãªããå¿ èŠäžå¯æ¬ ãªãã®ãšãªã£ãŠããŸããSubgridã¯ãåœéåãç§ãã¡ã®ã¬ã€ã¢ãŠãã·ã¹ãã ã®ãŸãã«æ§é ã«çµã¿èŸŒãŸããæªæ¥ãžã®éãéããŠãããWebãã©ãã«ããŠã誰ã«ãšã£ãŠãçã«ã¢ã¯ã»ã¹å¯èœã§äžè²«æ§ã®ããäœéšã«ããŠããŸãã
ãŸãšã
CSS Subgridã®ãããŒæ¹åã®ç¶æ¿ã¯ããã¹ããããã°ãªããã芪ã°ãªããã®äž»èŠãªãããŒæ¹åïŒå·Šããå³ãå³ããå·ŠãäžããäžãäžããäžïŒãæ¡çšããããšãå¯èœã«ãã匷åãªã¡ã«ããºã ã§ãããäž»ã«writing-modeããããã£ã«ãã£ãŠåœ±é¿ãåããŸãããã®æ©èœã¯ãåœéåãç°¡çŽ åããã¬ã¹ãã³ã·ããã¶ã€ã³ã匷åããããäžè²«æ§ã®ããè€éãªã³ã³ããŒãã³ãã¢ãŒããã¯ãã£ãå¯èœã«ããŸãããããã®ååãçè§£ããæŠç¥çã«é©çšããããšã§ãéçºè
ã¯å€æ§ãªã°ããŒãã«ãŠãŒã¶ãŒã®ããã«ãããå
æ¬çã§é©å¿æ§ã®ããWebäœéšãæ§ç¯ããããšãã§ããŸãã
Subgridã®åãæŽ»çšããCSSã¬ã€ã¢ãŠãã®æ°ããªã¬ãã«ã®å¶åŸ¡ãšæè»æ§ãè§£ãæŸã¡ãŸãããïŒ