CSSã³ã³ããã¯ãšãªã®ããã©ãŒãã³ã¹ã®ãããã¡ã€ãªã³ã°ãšæé©åãã¯ãšãªè©äŸ¡ãšã»ã¬ã¯ã¿ãŒã®ããã©ãŒãã³ã¹ã«çŠç¹ãåœãŠã詳现ãªåæã
CSSã³ã³ããã¯ãšãªã®ããã©ãŒãã³ã¹ãããã¡ã€ãªã³ã°ïŒã¯ãšãªè©äŸ¡ã®ããã©ãŒãã³ã¹
ã³ã³ããã¯ãšãªã¯ãã¬ã¹ãã³ã·ãWebãã¶ã€ã³ã«ããã倧ããªé²æ©ã衚ããŠãããéçºè ã¯ãã¥ãŒããŒãã ãã«é Œãã®ã§ã¯ãªããã³ã³ããèŠçŽ ã®ãµã€ãºãšç¹æ§ã«åºã¥ããŠã¹ã¿ã€ã«ãé©çšã§ããããã«ãªããŸãããéåžžã«åŒ·åã§ããäžæ¹ã§ãã³ã³ããã¯ãšãªã®åçãªæ§è³ªã¯ãããã©ãŒãã³ã¹ã«é¢ããèæ ®äºé ãå°å ¥ããå¯èœæ§ããããŸãããã®èšäºã§ã¯ãã³ã³ããã¯ãšãªã®ããã©ãŒãã³ã¹ã®ã¯ãšãªè©äŸ¡ãšããåŽé¢ã®ãããã¡ã€ãªã³ã°ãšæé©åã«çŠç¹ãåœãŠãŸãããã©ãŠã¶ããããã®ã¯ãšãªãã©ã®ããã«è©äŸ¡ãããã®é床ã«åœ±é¿ãäžããèŠå ãçè§£ããããšã¯ãããã©ãŒãã³ã¹ã®é«ãã¬ã¹ãã³ã·ãWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«äžå¯æ¬ ã§ãã
ã³ã³ããã¯ãšãªè©äŸ¡ã®çè§£
ã³ã³ããèŠçŽ ã®ãµã€ãºã倿Žãããå ŽåïŒãªãµã€ãºãã¬ã€ã¢ãŠãã·ããããŸãã¯ãã®ä»ã®åçãªã³ã³ãã³ã倿Žã«ããïŒããã©ãŠã¶ã¯ãã®ã³ã³ãããã¿ãŒã²ãããšãããã¹ãŠã®ã³ã³ããã¯ãšãªãåè©äŸ¡ããå¿ èŠããããŸããããã«ã¯ä»¥äžãå«ãŸããŸãã
- ã³ã³ããã®ãµã€ãºãšããããã£ã®æ±ºå®ïŒãã©ãŠã¶ã¯ãã³ã³ããã®å¹ ãé«ããããã³ã³ã³ããã§å®çŸ©ãããã«ã¹ã¿ã ããããã£ãååŸããŸãã
- ã¯ãšãªæ¡ä»¶ã®è©äŸ¡ïŒãã©ãŠã¶ã¯ãã³ã³ããã®ããããã£ãã³ã³ããã¯ãšãªã§æå®ãããæ¡ä»¶ïŒäŸïŒ
width > 500pxãheight < 300pxïŒãšæ¯èŒããŸãã - ã¹ã¿ã€ã«ã®é©çšãŸãã¯åé€ïŒã¯ãšãªè©äŸ¡ã«åºã¥ããŠããã©ãŠã¶ã¯å¯Ÿå¿ããCSSã«ãŒã«ãé©çšãŸãã¯åé€ããŸãã
ã³ã³ããã¯ãšãªè©äŸ¡ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ã¯ãã¯ãšãªã®è€éãã圱é¿ãåããèŠçŽ ã®æ°ãããã³ãã©ãŠã¶ã®ã¬ã³ããªã³ã°ãšã³ãžã³ã®å¹çæ§ãªã©ãããã€ãã®èŠå ã«äŸåããŸãã
ã³ã³ããã¯ãšãªè©äŸ¡ã®ããã©ãŒãã³ã¹ã®ãããã¡ã€ãªã³ã°
ã³ã³ããã¯ãšãªã®ããã©ãŒãã³ã¹ãæé©åããåã«ãæœåšçãªããã«ããã¯ãç¹å®ããããã«ã³ãŒãããããã¡ã€ãªã³ã°ããããšãäžå¯æ¬ ã§ãããã©ãŠã¶ã®éçºè ããŒã«ã¯ãããã©ãŒãã³ã¹ãããã¡ã€ãªã³ã°ã®ããã®ããã€ãã®æ©èœãæäŸããŠããŸãã
ãã©ãŠã¶ã®éçºè ããŒã«ã®äœ¿çš
ã»ãšãã©ã®ææ°ãã©ãŠã¶ã¯ãWebãµã€ãã®ããã©ãŒãã³ã¹ãèšé²ããŠåæã§ããçµã¿èŸŒã¿ã®éçºè ããŒã«ãæäŸããŠããŸãããããã®äœ¿ç𿹿³ã¯æ¬¡ã®ãšããã§ãã
- éçºè ããŒã«ã®èµ·åïŒF12ããŒïŒãŸãã¯macOSã§ã¯Cmd+Option+IããŒïŒãæŒããŠãéçºè ããŒã«ãéããŸãã
- ããã©ãŒãã³ã¹ã¿ããžã®ç§»åïŒãããã©ãŒãã³ã¹ãããã¿ã€ã ã©ã€ã³ãããŸãã¯ããããã¡ã€ã©ããšããã©ãã«ã®ä»ããã¿ããæ¢ããŸãã
- èšé²ã®éå§ïŒèšé²ãã¿ã³ïŒéåžžã¯åïŒãã¯ãªãã¯ããŠãWebãµã€ãã®ã¢ã¯ãã£ããã£ã®èšé²ãéå§ããŸãã
- Webãµã€ããšã®å¯Ÿè©±ïŒãŠã£ã³ããŠã®ãªãµã€ãºãåçã³ã³ãã³ããšã®å¯Ÿè©±ãªã©ãã³ã³ããã¯ãšãªè©äŸ¡ãããªã¬ãŒããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
- èšé²ã®åæ¢ïŒèšé²ãã¿ã³ãããäžåºŠã¯ãªãã¯ããŠãèšé²ã忢ããŸãã
- çµæã®åæïŒã¿ã€ã ã©ã€ã³ã調ã¹ãŠãé«ãCPU䜿çšçãé·ãã¬ã³ããªã³ã°æéãããæéãç¹å®ããŸãããã¹ã¿ã€ã«ãåèšç®ããŸãã¯ãã¬ã€ã¢ãŠããã«é¢é£ããã€ãã³ããæ€çŽ¢ããã³ã³ããã¯ãšãªè©äŸ¡ã«ãã£ãŠããªã¬ãŒãããŠãããã©ããã確èªããŸãã
éçºè ããŒã«å ã®ç¹å®ã®ããŒã«ã¯ãè©³çŽ°ãªæŽå¯ãæäŸã§ããŸãã
- Chrome DevToolsã®ã¬ã³ããªã³ã°ã¿ãïŒåãã€ã³ããã¬ã€ã¢ãŠãã·ããããã®ä»ã®ã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ã®åé¡ããã€ã©ã€ã衚瀺ããŸãããæœåšçãªã¹ã¯ããŒã«ããã«ããã¯ã®è¡šç€ºããšãã¬ã€ã¢ãŠãã·ããã®ãã€ã©ã€ã衚瀺ããæå¹ã«ããŠãæ¹åãå¿ èŠãªé åãèŠèŠçã«ç¹å®ããŸãã
- Firefox ProfilerïŒCPU䜿çšçãã¡ã¢ãªå²ãåœãŠããã®ä»ã®ããã©ãŒãã³ã¹ã¡ããªãã¯ãèšé²ããã³åæã§ãã匷åãªãããã¡ã€ãªã³ã°ããŒã«ã§ãã
- Safari Web InspectorïŒChrome DevToolsãšåæ§ã«ãSafariã®Web Inspectorã¯ãWebããŒãžã®ãããã°ãšãããã¡ã€ãªã³ã°ã®ããã®å æ¬çãªããŒã«ã»ãããæäŸããŸãã
ãããã¡ã€ãªã³ã°ããŒã¿ã®è§£é
ãããã¡ã€ãªã³ã°ããŒã¿ãåæãããšãã¯ã以äžã«æ³šæããŠãã ããã
- ã¹ã¿ã€ã«ã®åèšç®æéïŒããã¯ãã³ã³ããã¯ãšãªè©äŸ¡ã«ããã¹ã¿ã€ã«ã®åèšç®ã«è²»ããããæéã瀺ããŸããé«ãå€ã¯ãã³ã³ããã¯ãšãªãè€éã§ãããã倿°ã®èŠçŽ ã«åœ±é¿ãäžããŠããããšã瀺åããŠããŸãã
- ã¬ã€ã¢ãŠãæéïŒããã¯ãããŒãžã®ã¬ã€ã¢ãŠããåãããŒããã®ã«è²»ããããæéã瀺ããŸããã³ã³ããã¯ãšãªã®å€æŽã¯ãã³ã¹ãã®ãããã¬ã€ã¢ãŠãåãããŒãããªã¬ãŒããå¯èœæ§ããããŸãã
- ã¹ã¯ãªããæéïŒJavaScriptã³ãŒãã¯ã³ã³ããã¯ãšãªãšå¯Ÿè©±ããããã¬ã€ã¢ãŠãã®å€æŽãããªã¬ãŒãããã§ããŸããJavaScriptã³ãŒããããã©ãŒãã³ã¹ãžã®åœ±é¿ãæå°éã«æããããã«æé©åãããŠããããšã確èªããŠãã ããã
- ç¹å®ã®é¢æ°ã®èå¥ïŒå€ãã®ãããã¡ã€ã©ã¯ãæãæéãèŠããŠããç¹å®ã®CSSãŸãã¯JavaScript颿°ã衚瀺ããŸããããã«ãããããã©ãŒãã³ã¹ã®ããã«ããã¯ã®æ£ç¢ºãªãœãŒã¹ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
ã³ã³ããã¯ãšãªè©äŸ¡ã®ããã©ãŒãã³ã¹ã®æé©å
ã³ã³ããã¯ãšãªè©äŸ¡ã«é¢é£ããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããããããã€ãã®æé©åææ³ãé©çšã§ããŸãã
1. ã³ã³ããã¯ãšãªã®ç°¡çŽ å
è€éãªã³ã³ããã¯ãšãªã¯ãããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸããã¯ãšãªãç°¡çŽ åããããšãæ€èšããŠãã ããã
- æ¡ä»¶ã®æ°ã®åæžïŒå¯èœãªéããã³ã³ããã¯ãšãªã§äœ¿çšããæ¡ä»¶ãæžãããŸããããšãã°ãå¹ ãšé«ãã®äž¡æ¹ã確èªããã®ã§ã¯ãªãã1ã€ã®æ¬¡å ã ãã確èªããã°ååãã©ããã確èªããŸãã
- ããåçŽãªæ¡ä»¶ã®äœ¿çšïŒã³ã³ããã¯ãšãªå ã§è€éãªèšç®ãæååæäœãé¿ããŠãã ãããæ°å€ã®åºæ¬çãªæ¯èŒã«åºå·ããŠãã ããã
- ã¯ãšãªã®çµã¿åããïŒåæ§ã®ã¹ã¿ã€ã«ãé©çšããè€æ°ã®ã³ã³ããã¯ãšãªãããå Žåã¯ãããããè€æ°ã®æ¡ä»¶ãæã€åäžã®ã¯ãšãªã«çµã¿åãããããšãæ€èšããŠãã ãããããã«ãããã¹ã¿ã€ã«ã®åèšç®ã®æ°ãæžããããšãã§ããŸãã
äŸïŒ
代ããã«ïŒ
@container card (width > 300px) and (height > 200px) {
.card-content {
font-size: 1.2em;
}
}
èæ ®äºé ïŒ
@container card (width > 300px) {
.card-content {
font-size: 1.2em;
}
}
é«ãã®æ¡ä»¶ãå¿ ãããå¿ èŠãªãå Žåã¯ããããåé€ãããšããã©ãŒãã³ã¹ãåäžããå¯èœæ§ããããŸãã
2. ã³ã³ããã¯ãšãªã®ã¹ã³ãŒãã®æå°å
ã³ã³ããã¯ãšãªã®åœ±é¿ãåããèŠçŽ ã®æ°ãå¶éããŸããåã¹ã¿ã€ãªã³ã°ããå¿ èŠãããèŠçŽ ãå°ãªãã»ã©ãè©äŸ¡ããã»ã¹ã¯éããªããŸãã
- ç¹å®ã®èŠçŽ ãã¿ãŒã²ããã«ããïŒç¹å®ã®ã»ã¬ã¯ã¿ãŒã䜿çšããŠãã³ã³ããã®ãµã€ãºã«åºã¥ããŠã¹ã¿ã€ã«èšå®ããå¿ èŠãããèŠçŽ ã®ã¿ãã¿ãŒã²ããã«ããŸãã倿°ã®èŠçŽ ã«åœ±é¿ãäžããåºç¯ãããã»ã¬ã¯ã¿ãŒã®äœ¿çšã¯é¿ããŠãã ããã
- CSS Containmentã®äœ¿çšïŒ
containããããã£ã䜿çšãããšãèŠçŽ ãšãã®åå«ã®ã¬ã³ããªã³ã°ãåé¢ããã³ã³ããã¯ãšãªã®å€æŽãããŒãžã®ä»ã®éšåã§äžèŠãªã¬ã€ã¢ãŠãåãããŒãããªã¬ãŒããã®ãé²ãããšãã§ããŸããcontain: layoutãŸãã¯contain: contentïŒè©²åœããå ŽåïŒã䜿çšãããšãããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ããŸãã
äŸïŒ
éåžžã«äžè¬çãªã³ã³ããèŠçŽ ã«ã³ã³ããã¯ãšãªãé©çšãã代ããã«ãããå ·äœçãªã³ã³ãããäœæããããã«ã¯ãšãªãé©çšããŠã¿ãŠãã ããã
3. ã³ã³ããèŠçŽ ã®ã¬ã€ã¢ãŠãã®æé©å
ã³ã³ããèŠçŽ èªäœã®ã¬ã€ã¢ãŠãã¯ãã³ã³ããã¯ãšãªã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸããã³ã³ããã®ã¬ã€ã¢ãŠããè€éãŸãã¯éå¹çãªå Žåãè©äŸ¡ããã»ã¹ãé ããªãå¯èœæ§ããããŸãã
- å¹ççãªã¬ã€ã¢ãŠããã¯ããã¯ã®äœ¿çšïŒã³ã³ããã®ã³ã³ãã³ããšãµã€ãºã«é©ããã¬ã€ã¢ãŠããã¯ããã¯ãéžæããŸããããšãã°ãè€éãªã¬ã€ã¢ãŠãã«ã¯FlexboxãŸãã¯Gridã®äœ¿çšãæ€èšããŠãã ããã
- äžèŠãªã¬ã€ã¢ãŠãã·ããã®åé¿ïŒã³ã³ããèŠçŽ å ã®ã¬ã€ã¢ãŠãã·ãããæå°éã«æããŸããã¬ã€ã¢ãŠãã·ããã¯ãã³ã³ããã¯ãšãªã®åè©äŸ¡ãããªã¬ãŒããå¯èœæ§ãããããããããã©ãŒãã³ã¹ã«æªåœ±é¿ãäžããå¯èœæ§ããããŸãã Cumulative Layout Shift (CLS) ã¡ããªãã¯ã䜿çšããŠãã¬ã€ã¢ãŠãã·ããã®åé¡ãç¹å®ããŠå¯ŸåŠããŸãã
content-visibility: autoã®äœ¿çšïŒç»é¢å€ãŸãã¯ããã«ã¬ã³ããªã³ã°ããå¿ èŠã®ãªãã³ã³ãã³ãã«ã¯ãcontent-visibility: autoã䜿çšããŸããããã«ããããã©ãŠã¶ã¯ãããã衚瀺ããããŸã§ãã®ã³ã³ãã³ãã®ã¬ã³ããªã³ã°ãã¹ãããã§ããããã«ãªããåæããŒãžã®èªã¿èŸŒã¿ããã©ãŒãã³ã¹ãåäžããã³ã³ããã¯ãšãªè©äŸ¡ã®åœ±é¿ã軜æžãããŸãã
4. ãªãµã€ãºã€ãã³ãã®ãããŠã³ã¹ãŸãã¯ã¹ããããªã³ã°
JavaScriptã䜿çšããŠãªãµã€ãºã€ãã³ãã«åºã¥ããŠã³ã³ããã¯ãšãªã®åè©äŸ¡ãããªã¬ãŒããŠããå Žåã¯ãè©äŸ¡ã®é »åºŠãæžããããã«ã€ãã³ãã®ãããŠã³ã¹ãŸãã¯ã¹ããããªã³ã°ãæ€èšããŠãã ãããããã¯ãæ¥éãªãªãµã€ãºæäœãåŠçããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã
äŸïŒLodashã®debounce颿°ã䜿çšïŒïŒ
import { debounce } from 'lodash-es';
const resizeHandler = () => {
// ã³ã³ããã¯ãšãªã®åè©äŸ¡ãããªã¬ãŒãã
// (äŸïŒã³ã³ããã®ãµã€ãºãŸãã¯ããããã£ãæŽæ°ãã)
};
const debouncedResizeHandler = debounce(resizeHandler, 100);
window.addEventListener('resize', debouncedResizeHandler);
ãã®ã³ãŒãã¯resizeHandler颿°ããããŠã³ã¹ãããŠã£ã³ããŠãæ¥éã«ãªãµã€ãºãããå Žåã§ãã100ããªç§ããšã«1åã ãå®è¡ãããããã«ããŸãã
5. ã³ã³ããã¯ãšãªçµæã®ãã£ãã·ã¥
å Žåã«ãã£ãŠã¯ãã³ã³ããã¯ãšãªè©äŸ¡ã®çµæããã£ãã·ã¥ããŠãåé·ãªèšç®ãåé¿ã§ããŸããããã¯ãã³ã³ããã®ãµã€ãºãŸãã¯ããããã£ãé »ç¹ã«å€æŽãããªãå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã
äŸïŒåçŽãªãã£ãã·ã¥ã¡ã«ããºã ã䜿çšïŒïŒ
const containerQueryCache = new Map();
const evaluateContainerQuery = (containerElement, query) => {
const cacheKey = `${containerElement.id}-${query}`;
if (containerQueryCache.has(cacheKey)) {
return containerQueryCache.get(cacheKey);
}
// ã³ã³ããã¯ãšãªãè©äŸ¡ãã
const containerWidth = containerElement.offsetWidth;
const result = query(containerWidth); // 'query'ãæ¡ä»¶ãè©äŸ¡ãã颿°ã§ãããšä»®å®
containerQueryCache.set(cacheKey, result);
return result;
};
ãã®ã³ãŒãã¯ãã³ã³ããã®IDãšã¯ãšãªèªäœã«åºã¥ããŠã³ã³ããã¯ãšãªè©äŸ¡ã®çµæããã£ãã·ã¥ããŸããã¯ãšãªãè©äŸ¡ããåã«ãçµæããã§ã«ãã£ãã·ã¥ãããŠãããã©ããã確èªããŸãããã®å Žåããã£ãã·ã¥ãããçµæãè¿ããŸãããã以å€ã®å Žåã¯ãã¯ãšãªãè©äŸ¡ããçµæããã£ãã·ã¥ããŠè¿ããŸãã
6. ç¹ç°æ§ã®è³¢æãªäœ¿çš
CSSã®ç¹ç°æ§ã«ãããè€æ°ã®ã«ãŒã«ãç«¶åããå Žåã«ãã©ã®CSSã«ãŒã«ãèŠçŽ ã«é©çšãããããæ±ºå®ãããŸããé«åºŠã«å ·äœçãªã»ã¬ã¯ã¿ãŒã¯ãå ·äœæ§ã®äœãã»ã¬ã¯ã¿ãŒãããè©äŸ¡ã«ã³ã¹ãããããå¯èœæ§ããããŸããã³ã³ããã¯ãšãªãæäœããå Žåã¯ãäžèŠãªããã©ãŒãã³ã¹ãªãŒããŒããããåé¿ããããã«ãç¹ç°æ§ãè³¢ã䜿çšããŠãã ããã
- é床ã«å ·äœçãªã»ã¬ã¯ã¿ãŒã®åé¿ïŒå¿ èŠãªèŠçŽ ãã¿ãŒã²ããã«ããããã«å¿ èŠãªæå°éã®ç¹ç°æ§ã䜿çšããŸããIDãŸãã¯é床ã«è€éãªã»ã¬ã¯ã¿ãŒãã§ãŒã³ã®äœ¿çšã¯é¿ããŠãã ããã
- CSS倿°ã®äœ¿çšïŒCSS倿°ïŒã«ã¹ã¿ã ããããã£ïŒã¯ãç¹ç°æ§ã®ç«¶åãæžãããCSSã³ãŒããç°¡çŽ åããã®ã«åœ¹ç«ã¡ãŸãã
äŸïŒ
代ããã«ïŒ
#container .card .card-content p {
font-size: 1.1em;
}
èæ ®äºé ïŒ
.card-content p {
font-size: 1.1em;
}
.card-content pã»ã¬ã¯ã¿ãŒããç®çã®èŠçŽ ãã¿ãŒã²ããã«ããã®ã«ååã§ããå Žåã¯ãããå
·äœçãª#container .card .card-content pã»ã¬ã¯ã¿ãŒã®äœ¿çšãé¿ããŠãã ããã
7. 代æ¿ã¢ãããŒãã®æ€èš
å Žåã«ãã£ãŠã¯ãã³ã³ããã¯ãšãªãæãããã©ãŒãã³ã¹ã®é«ããœãªã¥ãŒã·ã§ã³ã§ã¯ãªãå¯èœæ§ããããŸããæ¬¡ã®ãããªä»£æ¿ã¢ãããŒããæ€èšããŠãã ããã
- ãã¥ãŒããŒãããŒã¹ã®ã¡ãã£ã¢ã¯ãšãªïŒã¹ã¿ã€ã«ã®å€æŽãäž»ã«ãã¥ãŒããŒããµã€ãºã«åºã¥ããŠããå Žåããã¥ãŒããŒãããŒã¹ã®ã¡ãã£ã¢ã¯ãšãªã¯ã³ã³ããã¯ãšãªãããå¹ççã§ããå¯èœæ§ããããŸãã
- JavaScriptããŒã¹ã®ãœãªã¥ãŒã·ã§ã³ïŒéåžžã«è€éãŸãã¯åçãªã¹ã¿ã€ã«èšå®ã®ã·ããªãªã§ã¯ãJavaScriptãããå€ãã®å¶åŸ¡ãšæè»æ§ãæäŸããå ŽåããããŸãããã ããJavaScriptã³ãŒãã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ã«æ³šæããŠãã ããã
- ãµãŒããŒåŽã®ã¬ã³ããªã³ã°ïŒãµãŒããŒåŽã®ã¬ã³ããªã³ã°ïŒSSRïŒã¯ããµãŒããŒã§HTMLãäºåã¬ã³ããªã³ã°ããããšã«ãããåæããŒãžã®èªã¿èŸŒã¿ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸããããã«ãããã³ã³ããã¯ãšãªè©äŸ¡ãªã©ãã¯ã©ã€ã¢ã³ãåŽã®åŠçã®éãæžããããšãã§ããŸãã
å®éã®äŸãšèæ ®äºé
eã³ããŒã¹ã®ååãªã¹ã
eã³ããŒã¹ã§ã¯ãååãªã¹ãã¯éåžžãã°ãªãããŸãã¯ã³ã³ããå
ã®å©çšå¯èœãªã¹ããŒã¹ã«åºã¥ããŠé©å¿ããŸããã³ã³ããã¯ãšãªã䜿çšããŠããã©ã³ããµã€ãºãç»åãµã€ãºãããã³ã°ãªããã®åæ°ã調æŽã§ããŸããã¯ãšãªãç°¡çŽ åããååã«ãŒãå
ã®å¿
èŠãªèŠçŽ ã®ã¿ãã¿ãŒã²ããã«ããcontent-visibilityãç»é¢å€ã®ååã«é©çšããããšã§æé©åããŸãã
ããã·ã¥ããŒãã³ã³ããŒãã³ã
ããã·ã¥ããŒãã«ã¯ãããŸããŸãªç»é¢ãµã€ãºã«é©å¿ããå¿ èŠããã倿°ã®ã³ã³ããŒãã³ããå«ãŸããããšããããããŸããã³ã³ããã¯ãšãªã䜿çšããŠããããã®ã³ã³ããŒãã³ãã®ã¬ã€ã¢ãŠããšã¹ã¿ã€ã«ã調æŽã§ããŸããæé©åã«ã¯ãCSS Containmentã䜿çšããŠã³ã³ããŒãã³ãã®ã¬ã³ããªã³ã°ãåé¢ããJavaScriptãã¬ã€ã¢ãŠã調æŽã«é¢äžããŠããå Žåã¯ãªãµã€ãºã€ãã³ãããããŠã³ã¹ããå¿ èŠã«å¿ããŠã³ã³ããã¯ãšãªã®çµæããã£ãã·ã¥ããããšãå«ãŸããŸãã
åœéåïŒi18nïŒãšããŒã«ã©ã€ãºïŒL10nïŒ
ããã¹ãã®é·ãã¯ãèšèªã«ãã£ãŠå€§ããç°ãªããŸããããã¹ãã®é·ããã³ã³ãããµã€ãºã«ã©ã®ããã«åœ±é¿ããã³ã³ããã¯ãšãªãã©ã®ããã«å¿çããããæ€èšããŠãã ããã衚瀺ãããŠããèšèªã«åºã¥ããŠã³ã³ããã¯ãšãªã®ãã¬ãŒã¯ãã€ã³ãã調æŽããå¿
èŠãããå ŽåããããŸãã CSSã®è«çããããã£ïŒäŸïŒwidthã®ä»£ããã«inline-sizeïŒã¯ãããŸããŸãªæžã蟌ã¿ã¢ãŒãïŒäŸïŒå·Šããå³ãå³ããå·ŠïŒããµããŒãããã®ã«åœ¹ç«ã¡ãŸãã
çµè«
ã³ã³ããã¯ãšãªã¯ãã¬ã¹ãã³ã·ãã§é©å¿æ§ã®é«ãWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®åŒ·åãªããŒã«ã§ãããã ããã³ã³ããã¯ãšãªè©äŸ¡ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãçè§£ããé©åãªæé©åææ³ãé©çšããããšãéèŠã§ããã³ãŒãããããã¡ã€ãªã³ã°ããã¯ãšãªãç°¡çŽ åããã¹ã³ãŒããæå°éã«æããã³ã³ããã®ã¬ã€ã¢ãŠããæé©åãããã£ãã·ã¥ã䜿çšããããšã«ãããã³ã³ããã¯ãšãªãå¹ççã«å®è¡ãããã¹ã ãŒãºãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«è²¢ç®ããããã«ããããšãã§ããŸããæé©åã¯å埩çãªããã»ã¹ã§ããããšãå¿ããªãã§ãã ãããã¢ããªã±ãŒã·ã§ã³ã®é²åã«åãããŠãã³ãŒããç¶ç¶çã«ãããã¡ã€ãªã³ã°ããããã©ãŒãã³ã¹ãç£èŠããŠãæœåšçãªããã«ããã¯ãç¹å®ããŠå¯ŸåŠããŠãã ããããŸããã¡ãã£ã¢ã¯ãšãªãªã©ã®ä»£æ¿ææ®µãšæ¯èŒããŠãContainer Queriesã®ããã©ãŒãã³ã¹äžã®å©ç¹ãæ³šææ·±ãæ€èšããŠãã ãããå Žåã«ãã£ãŠã¯ãããã©ãŒãã³ã¹ã®å©ç¹ãããã ãã®äŸ¡å€ããªãå ŽåããããåŸæ¥ã®ã¢ãããŒãã®æ¹ãé©ããŠããå¯èœæ§ããããŸãã