CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã®ããã©ãŒãã³ã¹ç£èŠãšåæãæ·±æããäœçœ®èšç®ãæé©åããã°ããŒãã«ãµã€ãå šäœã§ãŠãŒã¶ãŒäœéšãšããã©ãŒãã³ã¹ãåäžãããæ¹æ³ãåŠã³ãŸãã
CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã®ããã©ãŒãã³ã¹ç£èŠïŒäœçœ®èšç®ã®åæ
CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã¯ãWebããŒãžäžã®èŠçŽ éã®é¢ä¿ãäœæã»ç®¡çããæ¹æ³ãç°¡çŽ åãã匷åãã匷åãªCSSã®æ°æ©èœã§ããããã«ãããéçºè ã¯èŠçŽ ãä»ã®èŠçŽ ã«ã¢ã³ã«ãŒãããåçãªã¬ã€ã¢ãŠããã€ã³ã¿ã©ã¯ãã£ããªäœéšãåµåºã§ããŸãããããããã®åã«ã¯ããã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãçè§£ããäœçœ®èšç®ããŠãŒã¶ãŒäœéšã«ã©ã®ããã«åœ±é¿ããããç£èŠãã責任ã䌎ããŸãã
CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ãçè§£ãã
ããã©ãŒãã³ã¹ç£èŠã«å
¥ãåã«ãCSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã®åºæ¬ãçè§£ããããšãéèŠã§ãããã®æ žå¿ã¯ãããèŠçŽ ãã¢ã³ã«ãŒèŠçŽ ãšåŒã°ããå¥ã®èŠçŽ ã«å¯ŸããŠé
眮ã§ããããšã§ããããã¯anchor-nameããããã£ãšposition-anchorããããã£ã䜿çšããŠå®çŸãããŸãã
äŸïŒ
<!-- HTML -->
<div id="anchor">This is the anchor element.</div>
<div id="positioned">This element is positioned relative to the anchor.</div>
/* CSS */
#anchor {
anchor-name: --my-anchor;
}
#positioned {
position: absolute;
position-anchor: --my-anchor;
left: anchor(--my-anchor left);
top: anchor(--my-anchor top);
background-color: lightblue;
padding: 10px;
}
ãã®äŸã§ã¯ãIDããpositionedãã®èŠçŽ ã¯ãIDããanchorãã®èŠçŽ ã«ã¢ã³ã«ãŒãããŠããŸããanchor-nameããããã£ã¯ã¢ã³ã«ãŒèŠçŽ ã«ååãå²ãåœãŠãposition-anchorããããã£ã¯é
眮ãããèŠçŽ ã®ã¢ã³ã«ãŒèŠçŽ ãæå®ããŸããleftããããã£ãštopããããã£ã¯anchor()颿°ã䜿çšããŠãé
眮ãããèŠçŽ ã®äœçœ®ãã¢ã³ã«ãŒèŠçŽ ã«å¯ŸããŠæ±ºå®ããŸãã
ããã©ãŒãã³ã¹ç£èŠã®éèŠæ§
CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã¯æè»æ§ãæäŸããŸããããã®ããã©ãŒãã³ã¹ã¯ã¬ã€ã¢ãŠãã®è€éããã¢ã³ã«ãŒãããèŠçŽ ã®æ°ãã¢ã³ã«ãŒèŠçŽ ã®äœçœ®ã®æŽæ°é »åºŠãªã©ãããã€ãã®èŠå ã«ãã£ãŠåœ±é¿ãåããå¯èœæ§ããããŸããéå¹çãªäœçœ®èšç®ã¯ã以äžã®åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãïŒ
- ãžã£ã³ã¯ãšã©ã°ïŒãŠãŒã¶ãŒã¯ã«ã¯ã«ã¯ããã¢ãã¡ãŒã·ã§ã³ãé ãã€ã³ã¿ã©ã¯ã·ã§ã³ãäœéšããŸãã
- ããŒãžèªã¿èŸŒã¿æéã®å¢å ïŒé ãäœçœ®èšç®ã¯ã³ã³ãã³ãã®ã¬ã³ããªã³ã°ãé å»¶ãããå¯èœæ§ããããŸãã
- 壿ªãªãŠãŒã¶ãŒäœéšïŒé ããŠå¿çããªããŠã§ããµã€ãã¯ãŠãŒã¶ãŒãèç«ãããçŽåž°çã®äžæã«ã€ãªãããŸãã
ãããã£ãŠãäœçœ®èšç®ã®ããã©ãŒãã³ã¹ãç£èŠã»åæããããšã¯ãç¹ã«ã°ããŒãã«ãªãªãŒããšå€æ§ãªããã€ã¹èœåãæã€ãããã©ãŒãã³ã¹ã®é«ããŠãŒã¶ãŒãã¬ã³ããªãŒãªWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«äžå¯æ¬ ã§ãã
ç£èŠãã¹ãã¡ããªã¯ã¹
CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã®ããã©ãŒãã³ã¹ã广çã«ç£èŠããã«ã¯ãç¹å®ã®ã¡ããªã¯ã¹ã远跡ããå¿ èŠããããŸãããããã®ã¡ããªã¯ã¹ã¯ãäœçœ®èšç®ããã»ã¹ã®ããŸããŸãªåŽé¢ã«ã€ããŠã®æŽå¯ãæäŸããŸãïŒ
- äœçœ®èšç®æéïŒãã©ãŠã¶ãã¢ã³ã«ãŒãããèŠçŽ ã®äœçœ®ãèšç®ããã®ã«ãããæéãæž¬å®ããŸããããªç§åäœã§æž¬å®ãããããšãå€ãã§ããChrome DevToolsã®ããã©ãŒãã³ã¹ããã«ã®ãããªããŒã«ãããã«ããã¯ã®ç¹å®ã«åœ¹ç«ã¡ãŸãã
- ãã¬ãŒã ã¬ãŒãã®äœäžïŒãã¬ãŒã ã¬ãŒãã¯1ç§éã«è¡šç€ºããããã¬ãŒã æ°ãæããŸããå€§å¹ ãªãã¬ãŒã ã¬ãŒãã®äœäžã¯ããã©ãŒãã³ã¹ã®åé¡ã瀺ããŠããŸãããã¬ãŒã ã¬ãŒããç£èŠããããšã§ãäœçœ®èšç®ãã¬ã³ããªã³ã°ã®é å»¶ãåŒãèµ·ãããŠããã¿ã€ãã³ã°ãæããã«ã§ããŸãã
- ã¬ã€ã¢ãŠãã·ããïŒã¬ã€ã¢ãŠãã·ããã¯ãããŒãžã®èªã¿èŸŒã¿äžãã€ã³ã¿ã©ã¯ã·ã§ã³äžã«èŠçŽ ãäºæããç§»åãããšãã«çºçããŸããããã¯ãŠãŒã¶ãŒäœéšã«æªåœ±é¿ãäžããŸããCore Web Vitalsã®ãããªããŒã«ãã¬ã€ã¢ãŠãã·ãããšãã®ãŠãŒã¶ãŒãžã®åœ±é¿ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
- äœçœ®èšç®ã®åæ°ïŒäœçœ®èšç®ã®åæ°ã远跡ããããšã§ããã©ãŠã¶ãã©ããããã®é »åºŠã§äœçœ®ãåèšç®ããŠããããç¥ãããšãã§ããŸããåæ°ãå€ãå Žåã¯ãã¬ã€ã¢ãŠãã®éå¹çæ§ã瀺ããŠããå¯èœæ§ããããŸãã
- èšç®ã®è€éãïŒããã¯èšç®ã«é¢äžããDOMèŠçŽ ã®æ°ã䜿çšãããCSSããããã£ã®çš®é¡ãåæããããšã§æž¬å®ã§ããŸããè€éãªèšç®ã¯ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ãé«ããªããŸãã
ç£èŠã®ããã®ããŒã«ãšãã¯ããã¯
CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã®ããã©ãŒãã³ã¹ãç£èŠããããã«ãããã€ãã®ããŒã«ããã¯ããã¯ã䜿çšã§ããŸãïŒ
1. ãã©ãŠã¶éçºè ããŒã«
çŸä»£ã®ãŠã§ããã©ãŠã¶ã¯ãããã©ãŒãã³ã¹ç£èŠã®ããã®è±å¯ãªããŒã«ãæäŸããŠããŸããChrome DevToolsãFirefox Developer Toolsãªã©ã¯ãã¬ã³ããªã³ã°ããã»ã¹ã«é¢ããè©³çŽ°ãªæŽå¯ãæäŸããŸããäž»ãªæ©èœã¯æ¬¡ã®ãšããã§ãïŒ
- ããã©ãŒãã³ã¹ããã«ïŒããã©ãŒãã³ã¹ããã«ã§ã¯ããŠã§ããµã€ãã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãèšé²ã»åæããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæéãããã£ãŠããCSSèšç®ãçªãæ¢ããããšãã§ããŸãã
- ã¬ã³ããªã³ã°ã¿ãïŒã¬ã³ããªã³ã°ã¿ãã§ã¯ããã€ã³ãã®ãã©ãã·ã¥ãã¬ã€ã¢ãŠãã·ãããèŠèŠåã§ããã¬ã³ããªã³ã°ãã¬ã€ã¢ãŠãã«é¢é£ããããã©ãŒãã³ã¹åé¡ã®èšºæã«åœ¹ç«ã¡ãŸãã
- ç£æ»ããã«ïŒLighthouseïŒïŒChrome DevToolsã«çµã¿èŸŒãŸããŠããLighthouseã¯ãèªååãããããã©ãŒãã³ã¹ç£æ»ãšæé©åã®æšå¥šäºé ãæäŸããŸãã
äŸïŒChrome DevToolsã®äœ¿ç𿹿³ïŒ
- Chrome DevToolsãéããŸãïŒããŒãžãå³ã¯ãªãã¯ããŠãæ€èšŒããéžæããããF12ããŒãæŒããŸãïŒã
- ãããã©ãŒãã³ã¹ãããã«ã«ç§»åããŸãã
- ãèšé²ããã¿ã³ïŒå圢ã®ã¢ã€ã³ã³ïŒãã¯ãªãã¯ãããŠã§ããµã€ããšå¯Ÿè©±ããŠCSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã®èšç®ãããªã¬ãŒããŸãã
- ãã¬ãŒã¹ãåæããŸãããã¹ã¿ã€ã«ã®åèšç®ãã€ãã³ããæ¢ããŸãããããã®ã€ãã³ãã¯ããã©ãŠã¶ãèŠçŽ ã®ã¹ã¿ã€ã«ãåèšç®ããŠããæã瀺ããŠãããããã«ã¯äœçœ®èšç®ãå«ãŸããããšããããŸãã
- äœçœ®èšç®ã«æãæéãããã£ãŠããèŠçŽ ãç¹å®ããŸãã
2. Webããã©ãŒãã³ã¹ç£èŠïŒWPMïŒããŒã«
New RelicãDatadogãDynatraceãªã©ã®WPMããŒã«ã¯ãããå æ¬çãªããã©ãŒãã³ã¹ç£èŠæ©èœãæäŸããŸãããããã¯æéçµéã«äŒŽãããã©ãŒãã³ã¹ã远跡ãã詳现ãªããã·ã¥ããŒããæäŸããããã©ãŒãã³ã¹ã®ãããå€ãè¶ ãããšãã«ã¢ã©ãŒããéä¿¡ã§ããŸãããããã®ããŒã«ã¯ãã©ã€ããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãç£èŠããããã«æ¬çªç°å¢ã§ãã䜿çšãããŸãã
- ãªã¢ã«ãŠãŒã¶ãŒã¢ãã¿ãªã³ã°ïŒRUMïŒïŒRUMããŒã«ã¯å®éã®ãŠãŒã¶ãŒããããã©ãŒãã³ã¹ããŒã¿ãåéãããŠãŒã¶ãŒãããªãã®ãŠã§ããµã€ããã©ã®ããã«äœéšããŠãããã«ã€ããŠã®æŽå¯ãæäŸããŸããããã¯ãããŸããŸãªããã€ã¹ããããã¯ãŒã¯ç¶æ³ãå°ççãªå Žæã§ã®ããã©ãŒãã³ã¹ãçè§£ããã®ã«ç¹ã«åœ¹ç«ã¡ãŸãã
- ã·ã³ã»ãã£ãã¯ã¢ãã¿ãªã³ã°ïŒã·ã³ã»ãã£ãã¯ã¢ãã¿ãªã³ã°ã¯ããŠãŒã¶ãŒã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãã·ãã¥ã¬ãŒãããŠãŠã§ããµã€ãã®ããã©ãŒãã³ã¹ããã¹ãããŸããããã«ãããå®éã®ãšã³ããŠãŒã¶ãŒã«åœ±é¿ãåã¶åã«ããã©ãŒãã³ã¹ã®åé¡ãç¹å®ã§ããŸãã
- CI/CDãã€ãã©ã€ã³ãšã®çµ±åïŒå€ãã®WPMããŒã«ã¯ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çãããã€ã¡ã³ãïŒCI/CDïŒãã€ãã©ã€ã³ãšçµ±åãããŠãããéçºã¯ãŒã¯ãããŒã®äžéšãšããŠããã©ãŒãã³ã¹ãèªåçã«ç£èŠã§ããŸãã
3. ã«ã¹ã¿ã ããã©ãŒãã³ã¹ç£èŠ
JavaScriptãšPerformance APIã䜿çšããŠãã«ã¹ã¿ã ããã©ãŒãã³ã¹ç£èŠãå®è£ ããããšãã§ããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ã«é¢é£ããç¹å®ã®ã¡ããªã¯ã¹ãåéã§ããŸãããã®ã¢ãããŒãã§ã¯ãäœãã©ã®ããã«è¿œè·¡ãããã现ããå¶åŸ¡ã§ããŸããPerformance APIã¯ã¿ã€ãã³ã°æ å ±ãžã®ã¢ã¯ã»ã¹ãæäŸããããã䜿çšããŠäœçœ®èšç®ã«ãããæéãæž¬å®ã§ããŸããã«ã¹ã¿ã ãœãªã¥ãŒã·ã§ã³ã¯æå€§éã®æè»æ§ãæäŸããŸãã
äŸïŒèŠçŽ ã®äœçœ®èšç®æéãæž¬å®ããïŒ
const anchorElement = document.getElementById('anchor');
const positionedElement = document.getElementById('positioned');
function measurePositionCalculationTime() {
const startTime = performance.now();
// Trigger a position calculation (e.g., by accessing a property that depends on the position)
let computedStyle = window.getComputedStyle(positionedElement);
let left = parseFloat(computedStyle.getPropertyValue('left'));
const endTime = performance.now();
const calculationTime = endTime - startTime;
console.log(`Position calculation time: ${calculationTime}ms`);
return calculationTime;
}
// Call the function to measure the time
let timeTaken = measurePositionCalculationTime();
4. Core Web Vitals
Core Web Vitalsã¯ãè¯ããŠãŒã¶ãŒäœéšãæäŸããããã«éèŠãªç¹å®ã®ã¡ããªã¯ã¹ã®ã»ããã§ããããã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- Largest Contentful Paint (LCP)ïŒãã¥ãŒããŒãã«è¡šç€ºãããæå€§ã®ã³ã³ãã³ãèŠçŽ ã®èªã¿èŸŒã¿ããã©ãŒãã³ã¹ã枬å®ããŸãã
- First Input Delay (FID)ïŒãŠãŒã¶ãŒãæåã«ããŒãžãšå¯Ÿè©±ããŠããããã©ãŠã¶ããã®å¯Ÿè©±ã«å¿çã§ãããŸã§ã®æéãæž¬å®ããŸãã
- Cumulative Layout Shift (CLS)ïŒããŒãžã®èŠèŠçãªå®å®æ§ã枬å®ããäºæããªãã¬ã€ã¢ãŠãã·ãããå®éåããŸããæé©åãããŠããªãCSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã¯ãã¬ã€ã¢ãŠãã·ããã®äžå ãšãªãå¯èœæ§ããããŸãã
Google PageSpeed InsightsãChrome UX Reportã®ãããªããŒã«ã¯ãCore Web Vitalsã®ç£èŠã«åœ¹ç«ã¡ãŸããCSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ãæé©åããããšã¯ãCLSãšå šäœçãªãŠãŒã¶ãŒäœéšã«è¯ã圱é¿ãäžããå¯èœæ§ããããŸãã
CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã®ããã©ãŒãã³ã¹ãæé©åãã
ç£èŠã«ãã£ãŠããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããããæé©åæŠç¥ãé©çšã§ããŸãããããã®æŠç¥ã¯ãäœçœ®èšç®ãããã©ãŒãã³ã¹ã«äžãã圱é¿ãæå°éã«æããããšãã§ããŸãã
1. ã¢ã³ã«ãŒã®æŽæ°ãæå°éã«æãã
ã¢ã³ã«ãŒèŠçŽ ã®äœçœ®ãé »ç¹ã«æŽæ°ãããšãã¢ã³ã«ãŒãããèŠçŽ ã®äœçœ®èšç®ãé »ç¹ã«ããªã¬ãŒãããå¯èœæ§ããããŸããç¹ã«ã¢ãã¡ãŒã·ã§ã³ãã€ã³ã¿ã©ã¯ãã£ããªèŠçŽ å ã§ãã¢ã³ã«ãŒèŠçŽ ã®äœçœ®ã®æŽæ°ãã§ããã ãæå°éã«æããŠãã ããã
- ã¢ãã¡ãŒã·ã§ã³æè¡ã®æé©åïŒã¢ãã¡ãŒã·ã§ã³ã«ã¯
transformãštranslateã®äœ¿çšãæ€èšããŠãã ããããããã®ããããã£ã¯ããªãããŒïŒãããŠäœçœ®èšç®ïŒãããªã¬ãŒããtopãleftã®å€æŽãããããã©ãŒãã³ã¹ãé«ãããšãå€ãã§ãã - ãããŠã³ã¹ãŸãã¯ã¹ããããªã³ã°ïŒãŠãŒã¶ãŒå ¥åïŒäŸïŒããŠã¹ã®åãïŒã«å¿ããŠã¢ã³ã«ãŒã®äœçœ®ãæŽæ°ãããå Žåã¯ããããŠã³ã¹ãŸãã¯ã¹ããããªã³ã°æè¡ã䜿çšããŠæŽæ°ã®é »åºŠãå¶éããŸãã
will-changeã®æŠç¥çãªäœ¿çšïŒwill-changeããããã£ã¯ãèŠçŽ ããŸããªã倿Žãããå¯èœæ§ãé«ãããšããã©ãŠã¶ã«äŒããŸããé¢é£ããå€ïŒäŸïŒwill-change: transform;ïŒã§äœ¿çšãããšããã©ãŠã¶ãã¬ã³ããªã³ã°ãæé©åããã®ã«åœ¹ç«ã€ããšããããŸãããããã©ãŒãã³ã¹ã®ãªãŒããŒããããé¿ããããã«æ§ããã«äœ¿çšããå¿ èŠããããŸããèŠçŽ ã倿Žãããããšã確å®ã§ãããã©ãŒãã³ã¹äžã®å©ç¹ãæœåšçãªã³ã¹ããäžåãå Žåã«ã®ã¿äœ¿çšãã¹ãã§ãã
2. ã¬ã€ã¢ãŠããç°¡çŽ åãã
è€éãªã¬ã€ã¢ãŠãã¯ãäœçœ®èšç®äžã«ãã©ãŠã¶ãè¡ãäœæ¥éãå¢ãããŸããããã©ãŒãã³ã¹ãåäžãããããã«ã¬ã€ã¢ãŠããç°¡çŽ åããŠãã ããã
- ã¢ã³ã«ãŒãããèŠçŽ ã®æ°ãæžããïŒã¢ã³ã«ãŒãããèŠçŽ ãå€ãã»ã©ããã©ãŠã¶ãå®è¡ããå¿ èŠã®ããäœçœ®èšç®ãå€ããªããŸãããã¹ãŠã®èŠçŽ ãã¢ã³ã«ãŒããå¿ èŠãæ¬åœã«ãããè©äŸ¡ããŠãã ããã
- DOMæ§é ãæé©åããïŒããæ§é åãããDOMããªãŒã¯ããã©ãŒãã³ã¹ã®åäžã«åœ¹ç«ã¡ãŸããéåºŠã«æ·±ãããŸãã¯è€éãªDOMæ§é ã¯é¿ããŠãã ããã
- äžèŠãªã¹ã¿ã€ã«ãé¿ããïŒå¿ èŠã®ãªãCSSã¹ã¿ã€ã«ã¯åé€ããŠãã ããã
3. ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãå©çšãã
ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã¯ãCSSã®ãã©ã³ãžã·ã§ã³ãã¢ãã¡ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããããšãå€ãã鿥çã«CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã«å©çããããããŸããã¬ã³ããªã³ã°ã¿ã¹ã¯ãGPUã«ãªãããŒãããããšã§ãCPUãä»ã®ã¿ã¹ã¯ãåŠçããããã«è§£æŸãããŸãã
transformããããã£ïŒã¢ãã¡ãŒã·ã§ã³ããã©ã³ãžã·ã§ã³ã«ã¯ãå¯èœãªéãtransformããããã£ïŒäŸïŒtranslateãscaleãrotateïŒã䜿çšããŠãã ãããtransformããããã£ã¯ãã°ãã°ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãããªã¬ãŒããŸããwill-changeããããã£ïŒæ éã«ïŒïŒtransformãšå ±ã«will-changeã䜿çšããŠãä»åŸã®å€æŽã®ããã«èŠçŽ ã®ã¬ã³ããªã³ã°ãæé©åãããããã©ãŠã¶ã«ãã³ããäžããŸããé床ã«äœ¿çšãããšããã©ãŒãã³ã¹ã«æªåœ±é¿ãäžããå¯èœæ§ããããããæ éã«äœ¿çšããŠãã ããã
4. CSSã»ã¬ã¯ã¿ãæé©åãã
éå¹çãªCSSã»ã¬ã¯ã¿ã¯ãCSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã«é¢é£ããã¹ã¿ã€ã«ãå«ããã¹ã¿ã€ã«ã®é©çšããã»ã¹ãé ãããå¯èœæ§ããããŸããã»ã¬ã¯ã¿ãæé©åããããšã§ããã©ãŠã¶ã¯ã¹ã¿ã€ã«ãé©çšãã¹ãèŠçŽ ãå¹ççã«ç¹å®ã§ããŸãã
- å ·äœçãªã»ã¬ã¯ã¿ã䜿çšããïŒCSSã»ã¬ã¯ã¿ã¯å ·äœçã«èšè¿°ããŠãã ãããé床ã«äžè¬çãªã»ã¬ã¯ã¿ã¯ãã¹ã¿ã€ã«ã®èšç®ãé ãããå¯èœæ§ãããããé¿ããŠãã ããã
- è€éãªã»ã¬ã¯ã¿ã®çµã¿åãããé¿ããïŒè€éãªã»ã¬ã¯ã¿ã®çµã¿åããã¯ãã¹ã¿ã€ã«ã®èšç®ãé ãããå¯èœæ§ããããŸããå¯èœãªéãã»ã¬ã¯ã¿ãç°¡çŽ åããŠãã ããã
- å¹ççãªCSSæ§æã䜿çšããïŒããŸããŸãªCSSæ§æãããã©ãŒãã³ã¹ã«äžãã圱é¿ã«æ³šæããŠãã ããã
5. ãã£ãã·ã¥
ãã£ãã·ã¥ã¯ãäœçœ®èšç®ã®çµæãä¿åããå¯èœãªå Žåã«åå©çšããããšã§ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸããããããããã¯äžè¬çã«éçºè ãCSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã§æç€ºçã«å¶åŸ¡ãããã®ã§ã¯ãããŸãããã鿥çã«ãã¬ã€ã¢ãŠããæé©åããäžèŠãªæŽæ°ãé¿ããããšã§ããã©ãŠã¶ãå éšçã«èšç®ããã£ãã·ã¥ããŠåå©çšããæ¹æ³ãæ¹åã§ããŸãã
6. ã³ãŒãåå²ãšé å»¶èªã¿èŸŒã¿
CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã«çŽæ¥é¢é£ããããã§ã¯ãããŸããããã³ãŒãåå²ãšé å»¶èªã¿èŸŒã¿ã¯ããŒãžå šäœã®ããã©ãŒãã³ã¹ãåäžããã鿥çã«ã¢ã³ã«ãŒãããèŠçŽ ã®ãŠãŒã¶ãŒäœéšãæ¹åããŸããã¢ã³ã«ãŒããžã·ã§ãã³ã°ã«å¿ èŠãªCSSãšJavaScriptããªã³ããã³ãã§èªã¿èŸŒãããšã§ãåæããŒãžã®èªã¿èŸŒã¿æéãççž®ã§ããŸãã
- ã³ãŒãåå²ïŒã³ãŒããããå°ããªãã³ãã«ã«åå²ããå¿ èŠãªãšãã«ã®ã¿èªã¿èŸŒã¿ãŸããããã«ãããåæãã€ããŒããåæžãããŸãã
- é å»¶èªã¿èŸŒã¿ïŒç»é¢å€ã®ç»åããã®ä»ã®ãªãœãŒã¹ã¯ãå¿ èŠã«ãªã£ããšãã«ã®ã¿èªã¿èŸŒã¿ãŸãã
ã°ããŒãã«ãªèæ ®äºé ïŒå€æ§ãªãŠãŒã¶ãŒäœéšãžã®é©å¿
ã°ããŒãã«ãªèŠèŽè åãã«CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ãæé©åããéã«ã¯ãäžçäžã®ããŸããŸãªããã€ã¹ããããã¯ãŒã¯ç¶æ³ããŠãŒã¶ãŒäœéšãèæ ®ããããšãéèŠã§ãã
- ããã€ã¹ã®å€æ§æ§ïŒãŠãŒã¶ãŒã¯ããã€ãšã³ãã®ã¹ããŒããã©ã³ããæ§åŒã§äœæ§èœã®ããã€ã¹ãŸã§ãå€çš®å€æ§ãªããã€ã¹ããWebã«ã¢ã¯ã»ã¹ããŸãããã®ã¹ãã¯ãã«å šäœã§è¯å¥œã«åäœããããã«ã¬ã€ã¢ãŠããèšèšããæé©åããŠãã ãããããŸããŸãªããã€ã¹ã§ãã¹ãããéçºããŒã«ã§äœéãªãããã¯ãŒã¯ç¶æ³ããšãã¥ã¬ãŒãããããšãæ€èšããŠãã ããã
- ãããã¯ãŒã¯ç¶æ³ïŒã€ã³ã¿ãŒãããã®é床ã¯äžçäžã§åçã«ç°ãªããŸããäœéãªæ¥ç¶ã§ãé«éã§å¿çæ§ã®é«ãäœéšãä¿èšŒããããã«ãã¬ã€ã¢ãŠããšãªãœãŒã¹ãæé©åããŠãã ãããããã«ã¯ãããå°ããªç»åã®äœ¿çšãJavaScriptã®æé©åãéèŠãªã³ã³ãã³ãã®åªå é äœä»ããªã©ãå«ãŸããå ŽåããããŸãããã©ãŠã¶ã®éçºããŒã«ã§ãããã¯ãŒã¯ã¹ããããªã³ã°ã䜿çšããŠãããŸããŸãªãããã¯ãŒã¯é床ãã·ãã¥ã¬ãŒãããããã©ãŒãã³ã¹ããã¹ãããããšãæ€èšããŠãã ããã
- ããŒã«ãªãŒãŒã·ã§ã³ãšåœéåïŒL10nãši18nïŒïŒç°ãªãèšèªãæåã»ãããæžåæ¹åãèæ ®ããŠãã ãããã¬ã€ã¢ãŠãããç°ãªãããã¹ãã®é·ããåãã«å¯Ÿå¿ããé©å¿å¯èœã§ããããšã確èªããŠãã ãããããã«ã¯ãããŒã»ã³ããŒãžãçžå¯Ÿçãªé·ããªã©ã®æè»ãªåäœã䜿çšããèšèªã«åºã¥ããŠèŠçŽ ã®äœçœ®ã調æŽããããšãå«ãŸããå ŽåããããŸãã
- ã¢ã¯ã»ã·ããªãã£ïŒãŠã§ããµã€ããé害ãæã€ãŠãŒã¶ãŒã«ãã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŠãã ãããã»ãã³ãã£ãã¯HTMLã䜿çšããç»åã«ä»£æ¿ããã¹ããæäŸããååãªè²ã®ã³ã³ãã©ã¹ãã確ä¿ããŠãã ããããŸããã¢ã³ã«ãŒãããèŠçŽ ãã³ã³ãã³ããé ããããæ¯æŽæè¡ã䜿çšãããŠãŒã¶ãŒã«ãšã£ãŠã¢ã¯ã»ã·ããªãã£ã®éå£ãšãªããªãããã«ããŠãã ããã
- æåçãªé æ ®ïŒæåçãªéãã«æ³šæããç°ãªãå°åã®ãŠãŒã¶ãŒã«ãšã£ãŠäžå¿«ãŸãã¯æ··ä¹±ãæãå¯èœæ§ã®ãããã¶ã€ã³ãã¬ã€ã¢ãŠããé¿ããŠãã ãããããã«ã¯ãç»åãè²ãã¬ã€ã¢ãŠãã®æ £ç¿ã«æ³šæãæããç¹å®ã®æåç䟡å€èгã奜ã¿ã«åãããŠã³ã³ãã³ããšãã¶ã€ã³ã調æŽããããšãå«ãŸããå ŽåããããŸãã
ãã¹ããã©ã¯ãã£ã¹ã®ãŸãšã
èŠçŽãããšã以äžã¯CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã®ããã©ãŒãã³ã¹ãç£èŠããæé©åããããã®ãã¹ããã©ã¯ãã£ã¹ã®ãªã¹ãã§ãã
- é »ç¹ã«ç£èŠããïŒäœçœ®èšç®æéããã¬ãŒã ã¬ãŒããã¬ã€ã¢ãŠãã·ãããèšç®åæ°ãªã©ã®ããã©ãŒãã³ã¹ã¡ããªã¯ã¹ã宿çã«ç£èŠããŸãã
- è€æ°ã®ããŒã«ã䜿çšããïŒãã©ãŠã¶éçºè ããŒã«ãWebããã©ãŒãã³ã¹ç£èŠããŒã«ãã«ã¹ã¿ã ç£èŠãœãªã¥ãŒã·ã§ã³ãçµã¿åãããŠäœ¿çšããŸãã
- ãããã¡ã€ãªã³ã°ãšããã«ããã¯ã®ç¹å®ïŒããã©ãŒãã³ã¹ãããã¡ã€ãªã³ã°ããŒã«ã䜿çšããŠãã³ãŒãå ã®äœçœ®èšç®ãé ãç¹å®ã®é åãç¹å®ããŸãã
- æŽæ°ãæå°éã«æããïŒã¢ã³ã«ãŒäœçœ®ã®äžèŠãªæŽæ°ãæžãããŸãã
- ã¬ã€ã¢ãŠããç°¡çŽ åããïŒDOMæ§é ãæé©åããè€éãªã¬ã€ã¢ãŠããé¿ããŸãã
- ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã掻çšããïŒå¯èœãªéã
transformããããã£ã䜿çšããŸãã - ã»ã¬ã¯ã¿ãæé©åããïŒå¹ççãªCSSã»ã¬ã¯ã¿ã䜿çšããŸãã
- ããŸããŸãªããã€ã¹ãšãããã¯ãŒã¯ç¶æ³ã§ãã¹ãããïŒããŸããŸãªããã€ã¹ã§ãŠã§ããµã€ãããã¹ãããç°ãªããããã¯ãŒã¯ç¶æ³ãã·ãã¥ã¬ãŒãããŸãã
- åœéåãšã¢ã¯ã»ã·ããªãã£ãèæ ®ããïŒãŠã§ããµã€ããã¢ã¯ã»ã¹å¯èœã§ãç°ãªãèšèªãæžåæ¹åã«é©å¿ããããšã確èªããŸãã
- ç¶ç¶çã«è©äŸ¡ããïŒããã©ãŒãã³ã¹ã®æé©åã¯ç¶ç¶çãªããã»ã¹ã§ããç¶ç¶çã«ç£èŠãåæããã³ãŒããæ¹è¯ããŸãã
çµè«
CSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã¯ãåçã§å¿çæ§ã®é«ãWebã¬ã€ã¢ãŠããå¯èœã«ãã匷åãªæ©èœã§ããæœåšçãªããã©ãŒãã³ã¹ãžã®åœ±é¿ãçè§£ããå ç¢ãªç£èŠæŠç¥ãå®è£ ããæé©åæè¡ãé©çšããããšã§ãéçºè ã¯ãŠãŒã¶ãŒäœéšã«æªåœ±é¿ãäžããããšãªãCSSã¢ã³ã«ãŒããžã·ã§ãã³ã°ã®åãæŽ»çšã§ããŸããæ éãªç£èŠãæé©åããããŠã°ããŒãã«ãªèŠç¹ãéããŠãäžçäžã®ãŠãŒã¶ãŒã«ãšã£ãŠé«éã§å¿çæ§ãé«ããã¢ã¯ã»ã¹ããããWebäœéšãåµåºããããšãã§ããŸãã
ããã©ãŒãã³ã¹ã®æé©åã¯ç¶ç¶çãªããã»ã¹ã§ããããšãå¿ããªãã§ãã ããããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãç¶ç¶çã«ç£èŠããããŒã¿ãåæããå¿ èŠã«å¿ããŠæŠç¥ãé©å¿ãããŠãã ãããææ°ã®ãã¹ããã©ã¯ãã£ã¹ãããŒã«ã«ã€ããŠåžžã«æ å ±ãåŸãããšã§ãWebã¢ããªã±ãŒã·ã§ã³ããã¹ãŠã®ãŠãŒã¶ãŒã«ã¹ã ãŒãºã§é åçãªäœéšãæäŸã§ããããã«ããããšãã§ããŸãã
ãããªãåŠç¿ã®ããã«ïŒ
- MDN Web Docs: CSS ããžã·ã§ãã³ã°
- CSS Anchor Positioning Module Level 1 (W3C)
- Web.dev: CSS ã®æé©å
- 詳现ãªäœ¿çšæ³ãã€ã³ãµã€ãã«ã€ããŠã¯ãã奜ã¿ã®Webããã©ãŒãã³ã¹ç£èŠããŒã«ã®ããã¥ã¡ã³ããåç §ããŠãã ããã