CSSã®containããããã£ïŒlayout, paint, size, style, strict, contentïŒãæ·±ãæãäžããããããçµã¿åãããŠæ¯é¡ãªããŠã§ãããã©ãŒãã³ã¹æé©åãå®çŸããæ¹æ³ãåŠã³ãŸããéçºè ã®ããã®ã°ããŒãã«ã¬ã€ãã
ãŠã§ãããã©ãŒãã³ã¹ã®è§£æŸïŒCSS Containmentã®ãã«ãã¿ã€ãæŠç¥ããã¹ã¿ãŒãã
仿¥ã®çžäºæ¥ç¶ãããããžã¿ã«ç°å¢ã«ãããŠããŠã§ãããã©ãŒãã³ã¹ã¯æãéèŠã§ããäžçäžã®ãŠãŒã¶ãŒã¯ãããã€ã¹ããããã¯ãŒã¯ç¶æ³ãå°ççãªå Žæã«é¢ããããé»å
ç³ç«ã®äœéšãæåŸ
ããŠããŸãããŠã§ããµã€ããé
ããšããŠãŒã¶ãŒãã€ã©ã€ã©ãããã ãã§ãªããã³ã³ããŒãžã§ã³çãæ€çŽ¢ãšã³ãžã³ã©ã³ãã³ã°ããããŠæçµçã«ã¯ã°ããŒãã«ãªãªãŒãã«åœ±é¿ãäžããŸããJavaScriptã®æé©åãæ³šç®ãããã¡ã§ãããCSSãããŒãžã®ã¬ã³ããªã³ã°é床ãã¹ã ãŒãºãã«åæ§ã«éèŠãªåœ¹å²ãæãããŸããããã©ãŒãã³ã¹ãåäžãããããã®æã匷åã§ãããªããããã°ãã°ååã«æŽ»çšãããŠããªãCSSããããã£ã®äžã€ãcontainã§ãã
containããããã£ã¯ããã®æ§ã
ãªã¿ã€ããšæŠç¥çãªçµã¿åããã«ãããUIã®äžéšãéé¢ãããŠããæ§è³ªããã©ãŠã¶ã«äŒããããã®æŽç·Žãããã¡ã«ããºã ãæäŸããŸããCSS Containmentã®ãã«ãã¿ã€ãæŠç¥ãçè§£ãé©çšããããšã§ãéçºè
ã¯ãã©ãŠã¶ã®äœæ¥è² è·ã倧å¹
ã«åæžããåæããŒãã®é«éåãã¹ã¯ããŒã«ã®ã¹ã ãŒãºåãã€ã³ã¿ã©ã¯ã·ã§ã³ã®å¿çæ§åäžãå®çŸã§ããŸãããã®å
æ¬çãªã¬ã€ãã§ã¯ãåã³ã³ãã€ã³ã¡ã³ãã¿ã€ããæ·±ãæãäžããããããã®é·æãæ¢ãããããŠæãéèŠãªããšãšããŠãããããçµã¿åãããããšã§ã倿§ãªã°ããŒãã«ãªãŒãã£ãšã³ã¹ã«å¯Ÿå¿ãããŠã§ãã¢ããªã±ãŒã·ã§ã³ã®æ¯é¡ãªãæé©åã®å¯èœæ§ãè§£ãæŸã€æ¹æ³ãå®èšŒããŸãã
éããªããã©ãŒãã³ã¹ãã©ãŒïŒãã©ãŠã¶ã®ã¬ã³ããªã³ã°ã³ã¹ã
containã®è©³çްã«å
¥ãåã«ãããã察åŠãã課é¡ãçè§£ããããšãéèŠã§ãããã©ãŠã¶ããŠã§ãããŒãžãã¬ã³ããªã³ã°ããéãã¯ãªãã£ã«ã«ã¬ã³ããªã³ã°ãã¹ãšããŠç¥ãããè€éãªäžé£ã®ã¹ããããçµãŸãããã®ãã¹ã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- ã¬ã€ã¢ãŠãïŒãªãããŒïŒïŒããŒãžäžã®ãã¹ãŠã®èŠçŽ ã®ãµã€ãºãšäœçœ®ã決å®ããŸããããã¥ã¡ã³ããªããžã§ã¯ãã¢ãã«ïŒDOMïŒãCSSããããã£ã®å€æŽã¯ããã°ãã°ããã¥ã¡ã³ãå šäœãŸãã¯ãã®å€§éšåã®åã¬ã€ã¢ãŠããåŒãèµ·ãããŸãã
- ãã€ã³ãïŒåèŠçŽ ã®ãã¯ã»ã«ãå¡ãã€ã¶ããŸã â ããã¹ããè²ãç»åãå¢çç·ã圱ãªã©ãæç»ããŸãã
- ã³ã³ããžããïŒããŒãžã®åéšåãã¬ã€ã€ãŒã«æç»ãããããã®ã¬ã€ã€ãŒãçµã¿åãããŠç»é¢ã«è¡šç€ºãããæçµçãªç»åãçæããŸãã
ãããã®åã¹ãããã¯ãèšç®ã³ã¹ããé«ããªãå¯èœæ§ããããŸããå€ãã®çžäºäœçšããã³ã³ããŒãã³ããæã€å€§èŠæš¡ã§è€éãªãŠã§ãããŒãžãæ³åããŠã¿ãŠãã ãããDOMã®äžéšã®å°ããªå€æŽãäŸãã°ãªã¹ãã«æ°ããé ç®ã远å ããããèŠçŽ ãã¢ãã¡ãŒã·ã§ã³ããããããã ãã§ãããã¥ã¡ã³ãããªãŒå šäœã®ã¬ã€ã¢ãŠãããã€ã³ããã³ã³ããžããã®å®å šãªåèšç®ãåŒãèµ·ããå¯èœæ§ããããŸãããã®æ³¢å广ã¯ããã°ãã°ç®ã«ã¯èŠããŸããããç¹ã«æ§èœã®äœãããã€ã¹ããäžçã®å€ãã®å°åã§äžè¬çãªäœéãªãããã¯ãŒã¯æ¥ç¶ã«ãããŠããžã£ã³ã¯ïŒã«ã¯ã€ãïŒãããã©ãŒãã³ã¹äœäžã®äž»èŠãªåå ãšãªããŸãã
containããããã£ã¯ããã®æ³¢å广ãæã¡åãæ¹æ³ãæäŸããŸããããã«ãããéçºè
ã¯ç¹å®ã®èŠçŽ ãšãã®åå«ãããŒãžã®ä»ã®éšåãã倧éšåç¬ç«ããŠããããšããã©ãŠã¶ã«æç€ºçã«äŒããããšãã§ããŸãããã®ãã³ã³ãã€ã³ã¡ã³ãïŒå°ã蟌ãïŒãã¯ãã©ãŠã¶ã«éèŠãªãã³ããäžããããŒãžå
šäœãã¹ãã£ã³ããã®ã§ã¯ãªããDOMã®ç¹å®ã®ãµãããªãŒã«èšç®ãéå®ããããšã§ã¬ã³ããªã³ã°ããã»ã¹ãæé©åããããšãå¯èœã«ããŸããããã¯ããŠã§ãããŒãžã®ããç¹å®ã®é åã®åšãã«ãã§ã³ã¹ãç«ãŠãŠããã©ãŠã¶ã«ããã®ãã§ã³ã¹ã®äžã§èµ·ããããšã¯ããã®ãã§ã³ã¹ã®äžã«çãŸãããšäŒãããããªãã®ã§ãã
CSS contain ããããã£ã®è§£åïŒåã
ã®ã³ã³ãã€ã³ã¡ã³ãã¿ã€ã
containããããã£ã¯ããã€ãã®å€ãåãå
¥ãããããããç°ãªãã¬ãã«ãŸãã¯ã¿ã€ãã®åé¢ãæäŸããŸãããããã®åã
ã®ã¿ã€ããçè§£ããããšããè€åæŠç¥ããã¹ã¿ãŒããããã®åºç€ãšãªããŸãã
1. contain: layout;
layoutå€ã¯ãèŠçŽ ã®å
éšã¬ã€ã¢ãŠããèŠçŽ ã®å€éšã®äœãã®ã¬ã€ã¢ãŠãã«åœ±é¿ãäžããã®ãé²ããŸããéã«ãèŠçŽ ã®å€éšã®äœããã®å
éšã¬ã€ã¢ãŠãã«åœ±é¿ãäžããããšã¯ã§ããŸããããããã¬ã€ã¢ãŠãèšç®ã®ããã®åŒ·åãªå¢çãšèããŠãã ãããcontain: layout;ãæã€èŠçŽ ããéåžžã¯ãã®ç¥å
ãå
åŒèŠçŽ ã®ãªãããŒãåŒãèµ·ãããããªå
éšã³ã³ãã³ããã¹ã¿ã€ã«ã倿ŽããŠãããããã®å€éšèŠçŽ ã¯åœ±é¿ãåããŸããã
- å©ç¹ïŒãã©ãŠã¶ã¯ãã³ã³ãã€ã³ãããèŠçŽ ãšãã®åå«ã®ã¬ã€ã¢ãŠãã®ã¿ãåè©äŸ¡ããã°ãããšç¥ã£ãŠãããããã¬ã€ã¢ãŠãèšç®ãå€§å¹ ã«é«éåããŸããããã¯ããµã€ãºãã³ã³ãã³ããé »ç¹ã«å€ããèŠçŽ ã«ç¹ã«å¹æçã§ãã
- 䜿çšå Žé¢ïŒãŠã£ãžã§ãããã«ãŒãã¬ã€ã¢ãŠãããŸãã¯ä»®æ³ãªã¹ãã®ã¢ã€ãã ãªã©ãåã¢ã€ãã ã®å
éšå€æŽãã°ããŒãã«ãªåã¬ã€ã¢ãŠããåŒãèµ·ããã¹ãã§ãªãç¬ç«ããUIã³ã³ããŒãã³ãã«æé©ã§ããäŸãã°ãeã³ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãååã«ãŒãã³ã³ããŒãã³ãã
contain: layout;ã䜿çšããããšã§ããã®åçãªã³ã³ãã³ãïŒãã»ãŒã«ããããžãæŽæ°ãããäŸ¡æ Œãªã©ïŒãåšå²ã®ååã°ãªããã®åèšç®ã匷å¶ããªãããã«ã§ããŸãã - 䜿çšäŸïŒã¡ãã»ãŒãžã®ã¹ããªãŒã ã衚瀺ãããã£ããã¢ããªã±ãŒã·ã§ã³ãåã¡ãã»ãŒãžã®å¹ãåºãã¯åçãªã³ã³ãã³ãïŒç»åãçµµæåãæ§ã
ãªé·ãã®ããã¹ãïŒãæã€ããšãã§ããŸããåã¡ãã»ãŒãžèŠçŽ ã«
contain: layout;ãé©çšããããšã§ãæ°ããã¡ãã»ãŒãžãå°çããããæ¢åã®ã¡ãã»ãŒãžãå±éããããããŠãããã®ç¹å®ã®ã¡ãã»ãŒãžã®ã¬ã€ã¢ãŠãã®ã¿ãåèšç®ããããã£ããå±¥æŽå šäœã¯åèšç®ãããªãããšãä¿èšŒãããŸãã - æœåšçãªèœãšã穎ïŒèŠçŽ ã®ãµã€ãºããã®ã³ã³ãã³ãã«äŸåãããã€ãã®ãµã€ãºãã³ã³ãã€ã³ããŠããªãå ŽåãèŠçŽ ãèŠèŠçã«ãã®ã¹ããŒã¹ãã¯ã¿åºããããåæã¬ã€ã¢ãŠããééã£ãŠãããããäºæãã¬èŠèŠçãªäžå
·åãçºçããå¯èœæ§ããããŸããããã¯ãã°ãã°
contain: size;ãšã®çµã¿åãããå¿ èŠãšããŸãã
2. contain: paint;
paintå€ã¯ãèŠçŽ ã®å
éšã®äœããã®å¢çã®å€ã«ã¯æç»ãããªãããšããã©ãŠã¶ã«äŒããŸããããã¯ããã©ãŠã¶ãèŠçŽ ã®ããã£ã³ã°ããã¯ã¹ãè¶
ããã³ã³ãã³ããå®å
šã«ã¯ãªããã§ããããšãæå³ããŸããããã«éèŠãªã®ã¯ããã©ãŠã¶ã¯ã³ã³ãã€ã³ãããèŠçŽ ã®ã³ã³ãã³ãããã®ç¥å
ãå
åŒã®æç»ã«åœ±é¿ãäžããªããšä»®å®ããŠãæç»ãæé©åã§ããããšã§ããèŠçŽ ãç»é¢å€ã«ããå Žåããã©ãŠã¶ã¯åã«ãã®æç»ãå®å
šã«ã¹ãããã§ããŸãã
- å©ç¹ïŒæç»é åãå¶éããããšã§ãã€ã³ãæéãççž®ããŸããæ±ºå®çã«ãããã«ãããã©ãŠã¶ã¯ç»é¢å€èŠçŽ ã®æ©æã«ãªã³ã°ïŒæç»ã®çç¥ïŒãå®è¡ã§ããŸãã
contain: paint;ãæã€èŠçŽ ããã¥ãŒããŒãããå€ãããšããã©ãŠã¶ã¯ãã®ã³ã³ãã³ããæç»ããå¿ èŠããªãããšãç¥ããŸããããã¯ãã¹ã¯ããŒã«å¯èœãªé åãã¿ãä»ãã€ã³ã¿ãŒãã§ãŒã¹å ã®ãDOMã«ã¯ååšãããçŸåšè¡šç€ºãããŠããªãå€ãã®ã³ã³ããŒãã³ãã«ãšã£ãŠå€§ããªå©ç¹ã§ãã - 䜿çšå Žé¢ïŒé »ç¹ã«ãã¥ãŒã®å
å€ã«ã¹ã¯ããŒã«ãããèŠçŽ ãã¿ãããã«å
ã®èŠçŽ ïŒéã¢ã¯ãã£ããªã¿ãïŒããŸãã¯ç»é¢å€ã®ããã²ãŒã·ã§ã³ã¡ãã¥ãŒã«æé©ã§ããå€ãã®ãã£ãŒããããŒã¿å¯èŠåãæã€è€éãªããã·ã¥ããŒããèããŠã¿ãŠãã ãããåãŠã£ãžã§ããã«
contain: paint;ãé©çšããããšã§ããã©ãŠã¶ã¯ãããã®ã¬ã³ããªã³ã°ãæé©åã§ããç¹ã«ããããçŸåšã®ãã¥ãŒã®å€ã«ããå Žåã«å¹æçã§ãã - 䜿çšäŸïŒå€æ°ã®ã¹ã©ã€ããæã€ã«ã«ãŒã»ã«ã³ã³ããŒãã³ããäžåºŠã«1ã€ã®ã¹ã©ã€ããã衚瀺ãããŸãããåã¹ã©ã€ãïŒã¢ã¯ãã£ããªãã®ãé€ãïŒã«
contain: paint;ãé©çšãããšããã©ãŠã¶ã¯é衚瀺ã®ã¹ã©ã€ããæç»ããã®ãé¿ããããšãã§ããã¬ã³ããªã³ã°ã®ãªãŒããŒããããå€§å¹ ã«åæžããŸãã - æœåšçãªèœãšã穎ïŒèŠçŽ ã®èŠèŠçãªããã¯ã¹ãã¯ã¿åºãã³ã³ãã³ãã¯ãã¹ãŠã¯ãªãããããŸããããã¯ãæ£ãã管çããªããšæãŸãããªãèŠèŠçãªåãæšãŠã«ã€ãªããå¯èœæ§ããããŸããèŠçŽ ã«ååãªã¹ããŒã¹ãããããšã確èªããããã³ã³ãã€ã³ãããèŠçŽ å
ã§ã³ã³ãã³ããã¹ã¯ããŒã«å¯èœã«ãããå Žåã¯
overflow: auto;ã䜿çšããŠãã ããã
3. contain: size;
sizeå€ã¯ãèŠçŽ ã®ãµã€ãºããã®ã³ã³ãã³ãããç¬ç«ããŠããããšããã©ãŠã¶ã«äŒããŸãããã©ãŠã¶ã¯ãèŠçŽ ãåºå®ãµã€ãºïŒCSSã®width/height/min-heightã§æç€ºçã«å®çŸ©ãããŠããããç»åãªã©ã®å Žåã¯ãã®å
åšãµã€ãºïŒã§ãããšä»®å®ãããã®åã«åºã¥ããŠãµã€ãºãåè©äŸ¡ããå¿
èŠããªããªããŸããããã¯layoutã³ã³ãã€ã³ã¡ã³ããšçµã¿åããããšéåžžã«åŒ·åã§ãã
- å©ç¹ïŒèŠçŽ ã®ã³ã³ãã³ãã®å€æŽããã®ãµã€ãºã«åœ±é¿ãäžããããã«ãã£ãŠã°ããŒãã«ãªã¬ã€ã¢ãŠãã·ãããåŒãèµ·ããã®ãé²ããŸããããã¯ãå€ãã®èŠçŽ ãããããã©ãŠã¶ããã®åãæ€æ»ããããšãªããããã®ããŠã³ãã£ã³ã°ããã¯ã¹ãäºåã«èšç®ã§ããã·ããªãªã§ç¹ã«å¹æçã§ããããã«ãããã³ã³ãã€ã³ãããèŠçŽ ã®ã³ã³ãã³ãã倿ŽãããŠããç¥å ãå åŒèŠçŽ ããªãããŒããå¿ èŠããªããªããŸãã
- 䜿çšå Žé¢ïŒå¯žæ³ãããã£ãŠããããæç€ºçã«å®çŸ©ãããŠããã³ã³ããŒãã³ãã«äžå¯æ¬ ã§ããåºå®ãµã€ãºã®ç»åã®ã£ã©ãªãŒããããªãã¬ãŒã€ãŒããŸãã¯åã°ãªããã¢ã€ãã ãå®çŸ©ãããé åãæã€ã°ãªããã·ã¹ãã å
ã®ã³ã³ããŒãã³ããèããŠã¿ãŠãã ãããäŸãã°ãåæçš¿ã衚瀺ãããã³ã¡ã³ãããããããã®æ°ã«é¢ãããåºå®ã®é«ããæã€ãœãŒã·ã£ã«ã¡ãã£ã¢ã®ãã£ãŒãã¯ã
contain: size;ãæŽ»çšã§ããŸãã - 䜿çšäŸïŒåã¢ã€ãã ããã¬ãŒã¹ãã«ããŒç»åãšåºå®ã®ããã¹ããšãªã¢ãæã€ååã¢ã€ãã ã®ãªã¹ããç»åãé ããŠèªã¿èŸŒãŸããããããã¹ããåçã«æŽæ°ããããããŠãããã©ãŠã¶ã¯åã¢ã€ãã ã®ãµã€ãºãäžå®ãšããŠæ±ãããªã¹ãå šäœã®ã¬ã€ã¢ãŠãåèšç®ãé²ããŸãã
- æœåšçãªèœãšã穎ïŒã³ã³ãã³ããæ¬åœã«ãã®èŠªã®ãµã€ãºã«åœ±é¿ãäžããå¿
èŠãããå ŽåããèŠçŽ ã®ãµã€ãºãæç€ºçã«å®çŸ©ãããŠããªãå Žåã«
contain: size;ã䜿çšãããšãã³ã³ãã³ãã®ãªãŒããŒãããŒãäžæ£ç¢ºãªã¬ã³ããªã³ã°ã«ã€ãªãããŸããèŠçŽ ãå®å®ãããäºæž¬å¯èœãªãµã€ãºãæã£ãŠããããšã確èªããå¿ èŠããããŸãã
4. contain: style;
styleå€ã¯ãèŠçŽ ã®ãµãããªãŒå
ã®ã¹ã¿ã€ã«å€æŽããã®ãµãããªãŒã®å€éšã«åœ±é¿ãäžããã®ãé²ããŸããããã¯ãããããã§ãããç¹ã«éåžžã«åçãªã¢ããªã±ãŒã·ã§ã³ã§ã¯äŸç¶ãšããŠäŸ¡å€ã®ããã³ã³ãã€ã³ã¡ã³ãã¿ã€ãã§ããããã¯ãç¥å
ã®ã¹ã¿ã€ã«ã«åœ±é¿ãäžããå¯èœæ§ã®ããããããã£ïŒCSSã«ãŠã³ã¿ãŒãç¹å®ã®ã«ã¹ã¿ã ããããã£ãªã©ïŒããã³ã³ãã€ã³ãããèŠçŽ ãããæŒãåºããªããããšãæå³ããŸãã
- å©ç¹ïŒã¹ã¿ã€ã«åèšç®ã®ã¹ã³ãŒããåæžããŸãã
styleåç¬ã§å€§å¹ ãªããã©ãŒãã³ã¹åäžãèŠãããšã¯çšã§ãããè€éãªCSSã¢ãŒããã¯ãã£ã«ãããå šäœçãªå®å®æ§ãšäºæž¬å¯èœæ§ã«è²¢ç®ããŸããã³ã³ããŒãã³ãå ã§å®çŸ©ãããã«ã¹ã¿ã ããããã£ã®ãããªã¹ã¿ã€ã«ããæå³ããããŒãžã®ç¡é¢ä¿ãªéšåã«ãæŒãåºããŠã圱é¿ãäžããã®ãé²ããŸãã - 䜿çšå Žé¢ïŒã³ã³ããŒãã³ãå ã§ã«ã¹ã¿ã ããããã£ïŒCSS倿°ïŒãCSSã«ãŠã³ã¿ãŒã®ãããªè€éãªCSSæ©èœã䜿çšããŠããããã®ã¹ã³ãŒããå³å¯ã«ããŒã«ã«ã«ä¿ã¡ããã·ããªãªã§äœ¿çšããŸããè€æ°ã®ããŒã ã«ãã£ãŠéçºãããå€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã«ãããŠãè¯ãé²åŸ¡çãšãªãåŸãŸãã
- 䜿çšäŸïŒå
éšã®ããŒãèšå®ã«CSS倿°ãå€çšãããã¶ã€ã³ã·ã¹ãã ã®ã³ã³ããŒãã³ãããã®ã³ã³ããŒãã³ãã«
contain: style;ãé©çšããããšã§ããããã®å éšå€æ°ãããŒãžã®ä»ã®å Žæã§å®çŸ©ããã倿°ãã¹ã¿ã€ã«ãšæå³ããå¹²æžããã®ãé²ããã¢ãžã¥ãŒã«æ§ãä¿é²ããæå³ããªãã°ããŒãã«ãªã¹ã¿ã€ã«ã·ãããé²ããŸãã - æœåšçãªèœãšã穎ïŒãã®å€ã¯
layoutãsizeã«æ¯ã¹ãŠèŠèŠçãªåé¡ãåŒãèµ·ããå¯èœæ§ã¯äœãã§ãããç¹å®ã®CSSããããã£ïŒäŸãã°ãæé»çã«ç¥å ã«é©çšãããããç¶æ¿ãããå€ã«äºæãã¬æ¹æ³ã§åœ±é¿ãäžããããããã®ïŒãå¶çŽãããããšãèªèããŠããããšãéèŠã§ãã
5. ã·ã§ãŒããã³ãããããã£ïŒcontain: strict; ãš contain: content;
è€æ°ã®ã³ã³ãã€ã³ã¡ã³ãã¿ã€ãã®é©çšãç°¡çŽ åããããã«ãCSSã¯2ã€ã®ã·ã§ãŒããã³ãå€ãæäŸããŸãïŒ
contain: strict;
ããã¯æãç©æ¥µçãªåœ¢åŒã®ã³ã³ãã€ã³ã¡ã³ãã§ãcontain: layout paint size style;ãšç䟡ã§ããããã¯ãèŠçŽ ãã¬ã€ã¢ãŠãããã€ã³ãããµã€ãºãã¹ã¿ã€ã«ã®èгç¹ããå®å
šã«èªå·±å®çµããŠããããšããã©ãŠã¶ã«äŒããŸãããã©ãŠã¶ã¯ãã®ãããªèŠçŽ ãå®å
šã«ç¬ç«ãããŠããããšããŠæ±ãããšãã§ããŸãã
- å©ç¹ïŒæå€§éã®ããã©ãŒãã³ã¹åé¢ãæäŸããŸããçã«ã¹ã¿ã³ãã¢ãã³ã§ãã¬ã³ããªã³ã°ã©ã€ããµã€ã¯ã«ãããã¥ã¡ã³ãã®ä»ã®éšåããå®å šã«ç¬ç«ããŠããèŠçŽ ã«æé©ã§ãã
- 䜿çšå Žé¢ïŒçްå¿ã®æ³šæãæã£ãŠäœ¿çšããŠãã ããã寞æ³ãæç€ºçã«ããã£ãŠããããã®ã³ã³ãã³ãã芪/å
åŒèŠçŽ ã®ã¬ã€ã¢ãŠã/ãµã€ãºã«åœ±é¿ãäžãããããªãŒããŒãããŒãããããããšã決ããŠãªãã³ã³ããŒãã³ãã«ã®ã¿
contain: strict;ãé©çšããŠãã ãããäŸãšããŠã¯ãåºå®ãµã€ãºã®ãããã¢ããã¢ãŒãã«ããããªãã¬ãŒã€ãŒããŸãã¯æç€ºçã«ãµã€ãºã決ãããèªå·±å®çµããŠãããŠã£ãžã§ãããªã©ãæããããŸãã - æœåšçãªèœãšã穎ïŒãã®ç©æ¥µçãªæ§è³ªã®ããã
strictã¯ãã³ã³ãã€ã³ãããèŠçŽ ã倧ãããªãå¿ èŠãããå Žåãåšå²ã«åœ±é¿ãäžããå¿ èŠãããå ŽåããŸãã¯ãã®ã³ã³ãã³ãããªãŒããŒãããŒããå Žåã«ãããŒãžãèŠèŠçã«å£ãå¯èœæ§ãé«ãã§ãããã®èŠä»¶ãæºããããŠããªãå Žåãã³ã³ãã³ãã®ã¯ãªããã³ã°ãäžæ£ç¢ºãªãµã€ãžã³ã°ã«ã€ãªããå¯èœæ§ããããŸããèŠçŽ ã®æ¯ãèãã培åºçã«çè§£ããå¿ èŠããããŸãã
contain: content;
ããã¯å°ãç©æ¥µæ§ã®äœãã·ã§ãŒããã³ãã§ãcontain: layout paint style;ãšç䟡ã§ããæ³šç®ãã¹ãã¯ãsizeã³ã³ãã€ã³ã¡ã³ããçç¥ããŠããç¹ã§ããããã¯ãèŠçŽ ã®ãµã€ãºã¯äŸç¶ãšããŠãã®ã³ã³ãã³ãã«åœ±é¿ãããå¯èœæ§ããããããã®ã¬ã€ã¢ãŠãããã€ã³ããã¹ã¿ã€ã«ã®èšç®ã¯ã³ã³ãã€ã³ãããããšãæå³ããŸãã
- å©ç¹ïŒããã©ãŒãã³ã¹æé©åãšæè»æ§ã®éã®è¯ããã©ã³ã¹ãæäŸããŸããå éšã®ã³ã³ãã³ãããµã€ãºã«ãããŠå€åããå¯èœæ§ãããããããã§ããã®ã¬ã€ã¢ãŠãããã€ã³ããã¹ã¿ã€ã«ã®å¹æãããã¥ã¡ã³ãã®ä»ã®éšåããåé¢ãããèŠçŽ ã«é©ããŠããŸãã
- 䜿çšå Žé¢ïŒããã¹ããããã¯ãèšäºã®ã¹ããããããŸãã¯ãŠãŒã¶ãŒçæã³ã³ãã³ãã®ãããã¯ãªã©ãã³ã³ãã³ãã«ãã£ãŠé«ããå€åããå¯èœæ§ãããããä»ã®ã¬ã³ããªã³ã°ã³ã¹ããã³ã³ãã€ã³ãããå Žåã«åªããŠããŸããäŸãã°ãããã¹ãã®é·ãã¯ç°ãªããããã®ã¬ã€ã¢ãŠããšãã€ã³ããä»ã®ã«ãŒãã®ã¬ã³ããªã³ã°ã«åœ±é¿ãäžããªãã°ãªããå ã®ããã°æçš¿ãã¬ãã¥ãŒã«ãŒããªã©ã§ãã
- æœåšçãªèœãšã穎ïŒ
strictãããå¯å®¹ã§ãããèŠçŽ ã®ã³ã³ãã³ããäŸç¶ãšããŠãã®ãµã€ãºã«åœ±é¿ãäžããå¯èœæ§ãããããã®èŠªãæ éã«ç®¡çãããŠããªãå Žåãå€éšã®ã¬ã€ã¢ãŠãèšç®ãåŒãèµ·ããå¯èœæ§ãããããšãå¿ããªãã§ãã ããã
è€åã³ã³ãã€ã³ã¡ã³ãæŠç¥ïŒçžä¹å¹æã®å
CSSã³ã³ãã€ã³ã¡ã³ãã®çã®åã¯ãç¹å®ã®ããã©ãŒãã³ã¹ã®ããã«ããã¯ã«å¯ŸåŠããããã«ç°ãªãã¿ã€ããæŠç¥çã«çµã¿åããããšãã«çŸããŸããã¢ããªã±ãŒã·ã§ã³ã®å¿çæ§ãšå¹çãå€§å¹ ã«åäžãããããšãã§ãããäžè¬çã§å¹æçãªãã«ãã¿ã€ãæŠç¥ãããã€ãæ¢ã£ãŠã¿ãŸãããã
æŠç¥1ïŒä»®æ³ãªã¹ããšç¡éã¹ã¯ããŒã«ïŒcontain: layout size paint;ïŒ
ãŠã§ãäžã§æãäžè¬çãªããã©ãŒãã³ã¹èª²é¡ã®äžã€ã¯ããœãŒã·ã£ã«ã¡ãã£ã¢ã®ãã£ãŒããããŒã¿ããŒãã«ãååãªã¹ããªã©ãé·ãã¢ã€ãã ã®ãªã¹ãã衚瀺ããããšã§ããäœåãã®DOMããŒããã¬ã³ããªã³ã°ãããšãããã©ãŒãã³ã¹ã忢ããå¯èœæ§ããããŸãã衚瀺ãããŠããã¢ã€ãã ã®ã¿ãã¬ã³ããªã³ã°ããä»®æ³åæè¡ã¯ãäžè¬çãªè§£æ±ºçã§ããCSSã³ã³ãã€ã³ã¡ã³ãã¯ãããããã«åŒ·åããŸãã
- åé¡ç¹ïŒã³ã³ãã€ã³ã¡ã³ãããªããšãã¢ã€ãã ã®è¿œå /åé€ãã¢ã€ãã å ã®åçãªå€æŽãããªã¹ãå šäœãšãã®åšå²ã®å·šå€§ãªåã¬ã€ã¢ãŠããšåãã€ã³ããåŒãèµ·ããå¯èœæ§ããããŸãã
- 解決çïŒåã
ã®ãªã¹ãã¢ã€ãã ã«
contain: layout size paint;ãé©çšããŸããã¢ã€ãã ãåºå®ã®æ¢ç¥ã®ãµã€ãºãæã€å Žåã¯ãcontain: strict;ã䜿çšããããšãã§ããŸãã - åäœåçïŒ
contain: layout;ïŒå éšã®å€æŽïŒäŸïŒãŠãŒã¶ãŒã¹ããŒã¿ã¹ã®æŽæ°ãã¢ã€ãã å ã®ç»åã®èªã¿èŸŒã¿ïŒãä»ã®ãªã¹ãã¢ã€ãã ã芪ã³ã³ããã®ã¬ã€ã¢ãŠãåèšç®ãåŒãèµ·ãããªãããšãä¿èšŒããŸããcontain: size;ïŒåãªã¹ãã¢ã€ãã ãåºå®ã§äºæž¬å¯èœãªãµã€ãºã§ããããšããã©ãŠã¶ã«æ±ºå®çã«äŒããŸããããã«ããããã©ãŠã¶ã¯ã¢ã€ãã ã®ã³ã³ãã³ããæ€æ»ããããšãªããã¹ã¯ããŒã«äœçœ®ãšã¢ã€ãã ã®å¯èŠæ§ãæ£ç¢ºã«æ±ºå®ã§ããŸããããã¯ãä»®æ³åããžãã¯ãå¹ççã«æ©èœããããã®åºæ¬ã§ããcontain: paint;ïŒãã¥ãŒããã¹ã¯ããŒã«ã¢ãŠãããã¢ã€ãã ã®æç»ãå®å šã«ã¹ãããããããšããã©ãŠã¶ã«å¯èœã«ãããã€ã³ãã®äœæ¥è² è·ãåçã«åæžããŸãã
- å®è·µäŸïŒäœçŸãã®äŒæ¥è©³çްã衚瀺ããæ ªåŒåžå Žã®ãã£ãã«ãŒãæ³åããŠã¿ãŠãã ãããåè¡ïŒäŒæ¥ã衚ãïŒã¯åžžã«æŽæ°ãããããŒã¿ãæã£ãŠããŸãããåè¡ã®é«ãã¯åºå®ã§ããåè¡ã«
contain: layout size paint;ãé©çšããããšã§ãåã ã®ããŒã¿æŽæ°ãã°ããŒãã«ãªãªãããŒãåŒãèµ·ããããç»é¢å€ã®è¡ãæç»ãããªãããšãä¿èšŒãããŸãã - å®è·µçãªæŽå¯ïŒä»®æ³ãªã¹ããæ§ç¯ããéã¯ãåžžã«ãªã¹ãã¢ã€ãã ã«äºæž¬å¯èœãªå¯žæ³ãäžãããã®è€åã³ã³ãã€ã³ã¡ã³ããé©çšããããåªããŠãã ããããã®æŠç¥ã¯ãéããããªãœãŒã¹ã®ããã€ã¹ã§ã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããããããå€§èŠæš¡ãªããŒã¿ã»ãããæ±ãã°ããŒãã«ã¢ããªã±ãŒã·ã§ã³ã«ç¹ã«åŒ·åã§ãã
æŠç¥2ïŒç¬ç«ãããŠã£ãžã§ãããšã¢ãžã¥ãŒã«ïŒcontain: strict; ãŸã㯠contain: layout paint size;ïŒ
çŸä»£ã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã¯ããã£ãããŠã£ã³ããŠãéç¥ããã«ãåºåãŠããããã©ã€ãããŒã¿ãã£ãŒããªã©ãå€ãã®ç¬ç«ããã³ã³ããŒãã³ãããŠã£ãžã§ããã§æ§æãããããšããããããŸãããããã®ã³ã³ããŒãã³ãã¯é »ç¹ã«æŽæ°ãããè€éãªå éšæ§é ãæã€å ŽåããããŸãã
- åé¡ç¹ïŒäžã€ã®ãŠã£ãžã§ããå ã®åçãªæŽæ°ããæå³ããããŒãžã®ç¡é¢ä¿ãªéšåã®ã¬ã³ããªã³ã°äœæ¥ãåŒãèµ·ããå¯èœæ§ããããŸãã
- 解決çïŒãã®ãããªç¬ç«ãããŠã£ãžã§ããã®ã©ãããŒèŠçŽ ã«
contain: strict;ãé©çšããŸãããµã€ãºãå³å¯ã«åºå®ãããŠããªãããããã§ã倧éšåãã³ã³ãã€ã³ãããŠããå Žåã¯ãcontain: layout paint size;ïŒãããã¯åã«layout paint;ïŒãããå®å šãªä»£æ¿æ¡ãšãªãåŸãŸãã - åäœåçïŒ
contain: strict;ïŒãŸãã¯æç€ºçãªçµã¿åããïŒã¯ãæé«ã¬ãã«ã®åé¢ãæäŸããŸãããã©ãŠã¶ã¯ãŠã£ãžã§ããããã©ãã¯ããã¯ã¹ãšããŠæ±ãããã®å¢çå ã®ãã¹ãŠã®ã¬ã³ããªã³ã°æ®µéãæé©åããŸãã- å éšã®å€æŽïŒã¬ã€ã¢ãŠãããã€ã³ããã¹ã¿ã€ã«ããµã€ãºïŒã¯ãŠã£ãžã§ããããæŒãåºãããšãä¿èšŒãããããŒãžã®ä»ã®éšåã®ããã©ãŒãã³ã¹äœäžãé²ããŸãã
- å®è·µäŸïŒè€æ°ã®ç¬ç«ããããŒã¿å¯èŠåãŠã£ãžã§ãããåããããã·ã¥ããŒãã¢ããªã±ãŒã·ã§ã³ãåãŠã£ãžã§ããã¯ãªã¢ã«ã¿ã€ã ããŒã¿ã衚瀺ããé »ç¹ã«æŽæ°ãããŸããåãŠã£ãžã§ããã®ã³ã³ããã«
contain: strict;ãé©çšããããšã§ãäžã€ã®ãã£ãŒãã®æ¥éãªæŽæ°ãããã©ãŠã¶ã«ããã·ã¥ããŒãå šäœã®ã¬ã€ã¢ãŠããä»ã®ãã£ãŒããåã¬ã³ããªã³ã°ãããããšãé²ããŸãã - å®è·µçãªæŽå¯ïŒã¢ããªã±ãŒã·ã§ã³å
ã®çã«éé¢ãããã³ã³ããŒãã³ããç¹å®ããŸããå
åŒãç¥å
ã®ã¬ã€ã¢ãŠããšçžäºäœçšããã圱é¿ãäžãããããå¿
èŠã®ãªãã³ã³ããŒãã³ãã¯ã
strictãŸãã¯å æ¬çãªãã«ãã¿ã€ãã³ã³ãã€ã³ã¡ã³ãã®æåãªåè£ã§ãã
æŠç¥3ïŒç»é¢å€ãŸãã¯é衚瀺ã®ã³ã³ãã³ãïŒcontain: paint layout;ïŒ
å€ãã®ãŠã§ãã€ã³ã¿ãŒãã§ãŒã¹ã«ã¯ãDOMã®äžéšã§ãããªããçŸåšãŠãŒã¶ãŒã«ã¯è¡šç€ºãããŠããªãèŠçŽ ãå«ãŸããŠããŸããäŸãšããŠã¯ãã¿ãä»ãã€ã³ã¿ãŒãã§ãŒã¹ã®éã¢ã¯ãã£ããªã¿ããã«ã«ãŒã»ã«ã®ã¹ã©ã€ãããŸãã¯ããªã¬ãŒããããŸã§é衚瀺ã«ãªã£ãŠããã¢ãŒãã«ãªã©ããããŸãã
- åé¡ç¹ïŒ
display: none;ã§é衚瀺ã«ãããŠããŠããdisplayããããã£ãåãæ¿ãããããšã³ã³ãã³ããã¬ã€ã¢ãŠãèšç®ã«å¯äžããå¯èœæ§ããããŸããvisibility: hidden;ãç»é¢å€ã®äœçœ®æå®ã§é衚瀺ã«ãããã³ã³ãã³ãã¯ãäŸç¶ãšããŠã¹ããŒã¹ãå æãããã©ãŠã¶ã«ãã£ãŠé©åã«ã«ãªã³ã°ãããªãå Žåããã€ã³ãã³ã¹ãã«å¯äžããå¯èœæ§ããããŸãã - 解決çïŒéã¢ã¯ãã£ããªã¿ããç»é¢å€ã®ã«ã«ãŒã»ã«ã¹ã©ã€ãããŸãã¯DOMã«ã¯ååšãããçŸåšè¡šç€ºãããŠããªãä»ã®èŠçŽ ã«
contain: paint layout;ãé©çšããŸãã - åäœåçïŒ
contain: paint;ïŒèŠçŽ ãç»é¢å€ã«ããããå®å šã«èŠãããŠããå Žåããã©ãŠã¶ã¯ãã®å éšã®äœãæç»ããªãããšãç¥ã£ãŠããŸããããã¯ãDOMã®äžéšã§ãããªããããã«ã¯è¡šç€ºãããªãèŠçŽ ã«ãšã£ãŠéèŠãªæé©åã§ããcontain: layout;ïŒé衚瀺ã®èŠçŽ å ã§å éšçãªã¬ã€ã¢ãŠã倿Žããã£ãå ŽåïŒäŸïŒã³ã³ãã³ããéåæã§èªã¿èŸŒãŸããïŒãããããããŒãžã®è¡šç€ºéšåã®åã¬ã€ã¢ãŠããåŒãèµ·ãããªãããšãä¿èšŒããŸãã
- å®è·µäŸïŒåã¹ããããå¥ã®ã³ã³ããŒãã³ãã§ãããäžåºŠã«äžã€ãã衚瀺ãããªããã«ãã¹ããããã©ãŒã ãéã¢ã¯ãã£ããªã¹ãããã³ã³ããŒãã³ãã«
contain: paint layout;ãé©çšããããšã§ããã©ãŠã¶ããããã®é衚瀺ã®ã¹ããããæç»ãããã¬ã€ã¢ãŠãããããããªãœãŒã¹ã浪費ããªãããã«ãããŠãŒã¶ãŒããã©ãŒã ãããã²ãŒãããéã®äœæããã©ãŒãã³ã¹ãåäžãããŸãã - å®è·µçãªæŽå¯ïŒã¢ããªã±ãŒã·ã§ã³å
ã§è¡šç€º/é衚瀺ãé »ç¹ã«åãæ¿ããããããç»é¢å€ã«ç§»åããããããèŠçŽ ã確èªããŠãã ããããããã¯ãäžèŠãªã¬ã³ããªã³ã°äœæ¥ãåæžããããã«
contain: paint layout;ãé©çšããæåãªåè£ã§ãã
æŠç¥4ïŒå¯å€ããã¹ããåºå®ããã¯ã¹ã®ã³ã³ãã³ãïŒcontain: content;ïŒ
ã³ã³ããŒãã³ãã®å éšã³ã³ãã³ãïŒç¹ã«ããã¹ãïŒãå€åããããã«ãã£ãŠã³ã³ããŒãã³ãå šäœã®é«ãã«åœ±é¿ãäžããããä»ã®ã¬ã³ããªã³ã°åŽé¢ã¯åé¢ãããå ŽåããããŸãã
- åé¡ç¹ïŒã³ã³ãã³ãã倿ŽãããŠé«ãã«åœ±é¿ãäžãããšã芪èŠçŽ ãå åŒèŠçŽ ã®ã¬ã€ã¢ãŠãèšç®ãåŒãèµ·ããå¯èœæ§ããããŸãããããããã€ã³ããã¹ã¿ã€ã«ã®åèšç®ã®ãããªä»ã®ããã³ã¹ãã®ãããæäœãå€éšã«åœ±é¿ãäžããã®ãé²ãããå ŽåããããŸãã
- 解決çïŒ
contain: content;ïŒlayout paint style;ã®ã·ã§ãŒããã³ãïŒã䜿çšããŸããããã«ãããèŠçŽ ã®ãµã€ãºã¯ã³ã³ãã³ãã«ãã£ãŠæ±ºå®ãããäžæ¹ã§ãã¬ã€ã¢ãŠãããã€ã³ããã¹ã¿ã€ã«ã®å¹æã¯ã³ã³ãã€ã³ãããŸãã - åäœåçïŒ
contain: layout;ïŒå éšã®ã¬ã€ã¢ãŠã倿ŽïŒäŸïŒããã¹ãã®æãè¿ããç°ãªãïŒãå€éšã®ã¬ã€ã¢ãŠãã·ãããåŒãèµ·ãããŸãããcontain: paint;ïŒãã€ã³ããã³ã³ãã€ã³ããããã€ã³ãã®ã¹ã³ãŒããåæžãããŸããcontain: style;ïŒå éšã®ã¹ã¿ã€ã«å€æŽã¯ããŒã«ã«ã«çãŸããŸããsizeã³ã³ãã€ã³ã¡ã³ãããªããããèŠçŽ ã®é«ããæç€ºçã«å®çŸ©ããããšãªããã³ã³ãã³ãã«åºã¥ããŠåçã«èª¿æŽã§ããŸãã
- å®è·µäŸïŒåèšäºã¹ãããããã¿ã€ãã«ãç»åããããŠæ§ã
ãªéã®èŠçŽããã¹ããæã€ãã¥ãŒã¹ãã£ãŒããã¹ããããã«ãŒãã®å
šäœã®å¹
ã¯åºå®ã§ãããé«ãã¯ããã¹ãã«åãããŠèª¿æŽãããŸããåã¹ããããã«ãŒãã«
contain: content;ãé©çšããããšã§ããã®é«ãã調æŽãããäžæ¹ã§ããã¥ãŒã¹ãã£ãŒãã°ãªããå šäœã®ãªãããŒãåŒãèµ·ãããããã®ãã€ã³ããšã¹ã¿ã€ãªã³ã°ã屿åãããããšãä¿èšŒãããŸãã - å®è·µçãªæŽå¯ïŒé«ãã«åœ±é¿ãäžããå¯èœæ§ã®ããåçãªããã¹ãã³ã³ãã³ããæã€ã³ã³ããŒãã³ãã§ãä»ã®ã¬ã³ããªã³ã°äžã®æžå¿µãåé¢ãããå Žåã
contain: content;ã¯åªãããã©ã³ã¹ãæäŸããŸãã
æŠç¥5ïŒã¹ã¯ããŒã«é åå
ã®ã€ã³ã¿ã©ã¯ãã£ãèŠçŽ ïŒcontain: layout paint;ïŒ
ãªããããã¹ããšãã£ã¿ããã£ããå±¥æŽãªã©ãããããããŠã³ãããŒã«ããããåã蟌ã¿ã¡ãã£ã¢ãã¬ãŒã€ãŒãªã©ã®ã€ã³ã¿ã©ã¯ãã£ããªèŠçŽ ãå«ãå¯èœæ§ã®ãããè€éãªã¹ã¯ããŒã«å¯èœé åãèããŠã¿ãŸãããã
- åé¡ç¹ïŒãããã®èŠçŽ å ã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã¯ãã¬ã€ã¢ãŠãããã€ã³ãæäœãåŒãèµ·ããããããã¹ã¯ããŒã«å¯èœãªã³ã³ããããããŠæœåšçã«ã¯ãã®å ãŸã§æ³¢åããã¹ã¯ããŒã«ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
- 解決çïŒã¹ã¯ããŒã«å¯èœãªã³ã³ããèªäœã«
contain: layout paint;ãé©çšããŸããããã«ããããã©ãŠã¶ã«ã¬ã³ããªã³ã°ã®æžå¿µããã®ç¹å®ã®é åã«éå®ããããã«æç€ºããŸãã - åäœåçïŒ
contain: layout;ïŒã¹ã¯ããŒã«å¯èœé åå ã®ä»»æã®ã¬ã€ã¢ãŠã倿ŽïŒäŸïŒããããããŠã³ãéããåã蟌ã¿ãããªã®ãµã€ãºå€æŽïŒã¯ããã«éå®ãããã³ã¹ãã®ããããã«ããŒãžãªãããŒãé²ããŸããcontain: paint;ïŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«ãã£ãŠããªã¬ãŒããããã€ã³ãæäœïŒäŸïŒèŠçŽ ã«ãããŒãããããŒã«ãããã衚瀺ããïŒã屿åãããããã¹ã ãŒãºãªã¹ã¯ããŒã«ã«è²¢ç®ããŸãã
- å®è·µäŸïŒãŠãŒã¶ãŒãã«ã¹ã¿ã ã®ã€ã³ã¿ã©ã¯ãã£ãã³ã³ããŒãã³ããåã蟌ãããšãã§ãããªã³ã©ã€ã³ããã¥ã¡ã³ããšãã£ã¿ãã¡ã€ã³ã®ç·šéå¯èœãªãã£ã³ãã¹ã«
contain: layout paint;ãé©çšããããšã§ãåã蟌ã¿ã³ã³ããŒãã³ãå ã®è€éãªã€ã³ã¿ã©ã¯ã·ã§ã³ãåçãªã³ã³ãã³ããããšãã£ã¿å šäœã®å¿çæ§ããã®åšå²ã®UIã«æªåœ±é¿ãäžããªãããã«ããŸãã - å®è·µçãªæŽå¯ïŒè€éã§ã€ã³ã¿ã©ã¯ãã£ããªã¹ã¯ããŒã«å¯èœé åã«å¯ŸããŠã
layoutãšpaintã³ã³ãã€ã³ã¡ã³ããçµã¿åãããããšã§ãã€ã³ã¿ã©ã¯ã·ã§ã³ãšã¹ã¯ããŒã«ã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ããŸãã
ã°ããŒãã«å±éã®ããã®ãã¹ããã©ã¯ãã£ã¹ãšéèŠãªèæ ®äºé
CSSã³ã³ãã€ã³ã¡ã³ãã¯èšãç¥ããªãããã©ãŒãã³ã¹äžã®å©ç¹ãæäŸããŸãããéæ³ã®åŒŸäžžã§ã¯ãããŸãããæå³ããªãå¯äœçšãé¿ããããã«ã¯ãææ ®æ·±ãé©çšãšãã¹ããã©ã¯ãã£ã¹ã®éµå®ãäžå¯æ¬ ã§ããç¹ã«ãããã€ã¹ã®èœåããããã¯ãŒã¯æ¡ä»¶ãç°ãªãã°ããŒãã«ãªãŠãŒã¶ãŒããŒã¹ã«ã¢ããªã±ãŒã·ã§ã³ãå±éããå Žåã¯ãªãããã§ãã
1. æšæž¬ãããæž¬å®ããïŒã°ããŒãã«ããã©ãŒãã³ã¹ã¢ãã¿ãªã³ã°ïŒ
ããã©ãŒãã³ã¹æé©åãé©çšããåã®æãéèŠãªã¹ãããã¯ãçŸåšã®ããã©ãŒãã³ã¹ã枬å®ããããšã§ãããã©ãŠã¶ã®éçºè ããŒã«ïŒChrome DevToolsã®Performanceã¿ããLighthouseç£æ»ããŸãã¯WebPageTestãªã©ïŒã䜿çšããŠããã«ããã¯ãç¹å®ããŸããé·ãã¬ã€ã¢ãŠãæéãšãã€ã³ãæéãæ¢ããŠãã ãããã³ã³ãã€ã³ã¡ã³ãã¯ããããã®ã³ã¹ããæ¬åœã«é«ãå Žæã«é©çšãããã¹ãã§ããæšæž¬ã¯ãå¿ èŠã®ãªãå Žæã«ã³ã³ãã€ã³ã¡ã³ããé©çšããããã©ãŒãã³ã¹åäžã¯ã»ãšãã©ãªãã埮åŠãªãã°ãå°å ¥ããå¯èœæ§ããããŸããLargest Contentful Paint (LCP)ãFirst Input Delay (FID)ãCumulative Layout Shift (CLS)ãªã©ã®ããã©ãŒãã³ã¹ã¡ããªã¯ã¹ã¯æ®éçã«éèŠã§ãããã³ã³ãã€ã³ã¡ã³ãã¯ããããã¹ãŠã«ãã©ã¹ã®åœ±é¿ãäžããããšãã§ããŸãã
2. æå³åããçè§£ããïŒãã¬ãŒããªãïŒ
åã³ã³ãã€ã³ã¡ã³ãã¿ã€ãã«ã¯ãã¬ãŒããªãã䌎ããŸããcontain: size;ã¯å¯žæ³ã«ã€ããŠæç€ºçã§ããããšãèŠæ±ããŸãããçã«æµåçãªã¬ã€ã¢ãŠãã§ã¯åžžã«å¯èœãŸãã¯æãŸãããšã¯éããŸããããã¶ã€ã³äžã®ç®çã§ã³ã³ãã³ãããªãŒããŒãããŒããå¿
èŠãããå Žåãcontain: paint;ã¯ãããã¯ãªããããŸããåžžã«ãããã®æå³åããèªèããç°ãªããã¥ãŒããŒããã³ã³ãã³ãã®ããªãšãŒã·ã§ã³ã§åŸ¹åºçã«ãã¹ãããŠãã ãããããå°åã®é«è§£å床ã¢ãã¿ãŒã§æ©èœãããœãªã¥ãŒã·ã§ã³ããå¥ã®å°åã®ããå°ããªã¢ãã€ã«ããã€ã¹ã§ã¯èŠèŠçã«å€±æããå¯èœæ§ããããŸãã
3. å°ããå§ããŠå埩ãã
ããŒãžã®ãã¹ãŠã®èŠçŽ ã«contain: strict;ãé©çšããªãã§ãã ãããæ¢ç¥ã®åé¡é åããå§ããŸãïŒå€§ããªãªã¹ããè€éãªãŠã£ãžã§ããããŸãã¯é »ç¹ã«æŽæ°ãããã³ã³ããŒãã³ããæåã«æãå
·äœçãªã³ã³ãã€ã³ã¡ã³ãã¿ã€ãïŒäŸïŒåãªãlayoutãpaintïŒãé©çšããæ¬¡ã«å¿
èŠã«å¿ããŠçµã¿åãããåã¹ãããã§åœ±é¿ã枬å®ããŸãããã®å埩çãªã¢ãããŒãã¯ãæã广çãªæŠç¥ãç¹å®ããéå°ãªæé©åãé¿ããã®ã«åœ¹ç«ã¡ãŸãã
4. ã¢ã¯ã»ã·ããªãã£ã«é¢ããèæ ®äºé
ã³ã³ãã€ã³ã¡ã³ããã¢ã¯ã»ã·ããªãã£æ©èœãšã©ã®ããã«çžäºäœçšãããã«æ³šæããŠãã ãããäŸãã°ãèŠèŠçã«ç»é¢å€ã«ãããã¹ã¯ãªãŒã³ãªãŒããŒã«ã¯ã¢ã¯ã»ã¹å¯èœã§ããã¹ãèŠçŽ ã«contain: paint;ã䜿çšããŠããå Žåããã®ã³ã³ãã³ããã¢ã¯ã»ã·ããªãã£ããªãŒã§å©çšå¯èœãªãŸãŸã§ããããšã確èªããŠãã ãããäžè¬çã«ãã³ã³ãã€ã³ã¡ã³ãããããã£ã¯äž»ã«ã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããã»ãã³ãã£ãã¯HTMLãARIA屿§ã«çŽæ¥å¹²æžããããšã¯ãããŸããããåžžã«ã¢ã¯ã»ã·ããªãã£ç£æ»ãå®è¡ããããšãè³¢æã§ãã
5. ãã©ãŠã¶ãµããŒããšããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ã
containã¯ã¢ãã³ãã©ãŠã¶ã§è¯å¥œãªãµããŒãããããŸããïŒcaniuse.comã§ç¢ºèªïŒããã®äœ¿çšãããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ããšããŠèããŠãã ãããã³ã¢æ©èœãæ£ããã¬ã³ããªã³ã°ã®ããã«ã³ã³ãã€ã³ã¡ã³ãã®ã¿ã«äŸåããã¹ãã§ã¯ãããŸããããã©ãŠã¶ãcontainããµããŒãããŠããªãå Žåã§ããããŒãžã¯æ£ããæ©èœããã¹ãã§ãããããã©ãŒãã³ã¹ã¯äœäžããå¯èœæ§ããããŸãããã®ã¢ãããŒãã¯ããã©ãŠã¶ã®ããŒãžã§ã³ã«é¢ããããäžçäžã®ãŠãŒã¶ãŒã«å
ç¢ãªäœéšãä¿èšŒããŸãã
6. ã³ã³ãã€ã³ã¡ã³ãåé¡ã®ãããã°
containãé©çšããåŸã«ãã¯ãªãããããã³ã³ãã³ããäžæ£ç¢ºãªã¬ã€ã¢ãŠããªã©ãäºæããªãåé¡ã«ééããå Žåã®ãããã°æ¹æ³ã¯æ¬¡ã®ãšããã§ãïŒ
- èŠçŽ ãã€ã³ã¹ãã¯ãããïŒãã©ãŠã¶ã®éçºè ããŒã«ã䜿çšããŠãã³ã³ãã€ã³ãããèŠçŽ ãšãã®èŠªã®èšç®æžã¿ã¹ã¿ã€ã«ã確èªããŸãã
- ããããã£ãåãæ¿ããïŒã©ã®ç¹å®ã®ããããã£ãåé¡ãåŒãèµ·ãããŠãããã確èªããããã«ã
containã®å€ïŒäŸïŒsizeãpaintïŒãäžæçã«äžã€ãã€ç¡å¹ã«ããŸãã - ãªãŒããŒãããŒã確èªããïŒã³ã³ãããèŠèŠçã«ã¯ã¿åºããŠããèŠçŽ ãæ¢ããŸãã
- 寞æ³ã確èªããïŒ
contain: size;ïŒãŸãã¯strictïŒãæã€èŠçŽ ããæç€ºçãŸãã¯å åšçã«å®çŸ©ããã寞æ³ãæã£ãŠããããšã確èªããŸãã - ããã©ãŒãã³ã¹ã¢ãã¿ãŒïŒå€æŽãå®éã«ã¬ã€ã¢ãŠããšãã€ã³ãæéã«æãŸãã广ããããããŠãããã確èªããããã«ãããã©ãŒãã³ã¹ã¢ãã¿ãŒãéãããŸãŸã«ããŸãã
å®äžçãžã®åœ±é¿ãšã°ããŒãã«ãªé¢é£æ§
CSSã³ã³ãã€ã³ã¡ã³ãã®æŠç¥çãªé©çšã¯ãåã«ããªç§ãåãããšã ãã§ã¯ãããŸãããããã¯ãäžçäžã§åªãããå ¬å¹³ãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããšã§ããé«éã€ã³ã¿ãŒãããã髿§èœãªã³ã³ãã¥ãŒãã£ã³ã°ããã€ã¹ãžã®ã¢ã¯ã»ã¹ãããã»ã©æ®åããŠããªãå°åã§ã¯ãCSSã³ã³ãã€ã³ã¡ã³ãã®ãããªããã©ãŒãã³ã¹æé©åã¯ã䜿ãããŠã§ãã¢ããªã±ãŒã·ã§ã³ãšãå®è³ªçã«ã¢ã¯ã»ã¹äžå¯èœãªã¢ããªã±ãŒã·ã§ã³ãšã®éãã«ãªãåŸãŸããCPUãšGPUã®äœæ¥è² è·ãæžããããšã§ãã¢ãã€ã«ãŠãŒã¶ãŒã®ããããªãŒå¯¿åœãæ¹åããå€ãããŒããŠã§ã¢ã§ã®ãµã€ãã®å¿çæ§ãé«ããå€åãããããã¯ãŒã¯æ¡ä»¶äžã§ãããã¹ã ãŒãºãªäœéšãæäŸããŸããããã¯ãããè¯ããŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ããäœãçŽåž°çããããŠäžçäžã®ã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ã«å¯ŸããããåºããªãŒãã£ãšã³ã¹ãªãŒãã«çŽæ¥ã€ãªãããŸãã
ããã«ãç°å¢çãªèгç¹ãããããå¹ççãªã¬ã³ããªã³ã°ã¯æ¶è²»ãããèšç®èœåã®åæžã«ã€ãªãããããç°å¢ã«åªãããŠã§ãã«è²¢ç®ããŸãããã®ã°ããŒãã«ãªè²¬ä»»ã¯ããã¯ãããžãŒæ¥çã§ãŸããŸãèªèãããŠãããå¹ççãªCSSã¯ãã®è§£æ±ºçã®äžéšã§ãã
çµè«ïŒã³ã³ãã€ã³ããããã¶ã€ã³ã®åãåãå ¥ãã
CSSã³ã³ãã€ã³ã¡ã³ãã¯ãç¹ã«ãã®ãã«ãã¿ã€ãæŠç¥ã掻çšããå Žåãæé«ã®ããã©ãŒãã³ã¹ãéæããããã®çŸä»£ã®ãŠã§ãéçºè ã®ããŒã«ããã¯ã¹ã«äžå¯æ¬ ãªããŒã«ã§ããããã¯ãUIã®æ§é ãšç¬ç«æ§ããã©ãŠã¶ã«æç€ºçã«äŒããåãäžãããã€ãŠã¯è€éãªJavaScriptãœãªã¥ãŒã·ã§ã³ãæ éãªæåã®DOMæäœã«ãã£ãŠã®ã¿å¯èœã ã£ãã€ã³ããªãžã§ã³ããªã¬ã³ããªã³ã°æé©åããã©ãŠã¶ãè¡ãããšãå¯èœã«ããŸãã
ä»®æ³ãªã¹ãããç¬ç«ãããŠã£ãžã§ãããç»é¢å€ã®ã³ã³ãã³ããŸã§ãlayoutãpaintãsizeãstyleã®ã³ã³ãã€ã³ã¡ã³ããæŠç¥çã«çµã¿åãããèœåã¯ã髿§èœã§å¿çæ§ãé«ãããªãœãŒã¹å¹çã®è¯ããŠã§ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®æè»ã§åŒ·åãªææ®µãæäŸããŸãããŠã§ããé²åãç¶ããé床ãšã¹ã ãŒãºãã«å¯ŸãããŠãŒã¶ãŒã®æåŸ
ãé«ãŸãã«ã€ããŠãCSSã³ã³ãã€ã³ã¡ã³ãããã¹ã¿ãŒããããšã¯ãééããªãããªãã®ãããžã§ã¯ããéç«ãããã©ãã«ãããŠãŒã¶ãŒã«ãé«éã§æµãããããªäœéšãä¿èšŒããã§ãããã
仿¥ããããªãã®ãããžã§ã¯ãã§containã詊ãå§ããŠãã ããããã®åœ±é¿ã枬å®ããå埩ããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã®ããã®ããããã©ãŒãã³ã¹ã®é«ããŠã§ãäœéšã®å©ç¹ã享åããŠãã ãããããªãã®ãŠãŒã¶ãŒããããŠåœŒãã®ããã€ã¹ã¯ãããªãã«æè¬ããã§ãããã