CSSã³ã³ããã¯ãšãªã®ååã®è¡çªåé¡ãçè§£ã解決ããããã®å æ¬çãªã¬ã€ããå ç¢ã§ä¿å®æ§ã®é«ãã¬ã¹ãã³ã·ããã¶ã€ã³ãå®çŸããŸãã
CSSã³ã³ããã¯ãšãªã®ååã®è¡çªïŒã³ã³ããåç §ã®ç«¶å解決
CSSã³ã³ããã¯ãšãªã¯ãçã«ã¬ã¹ãã³ã·ããªãã¶ã€ã³ãäœæããããã®åŒ·åãªããŒã«ã§ãããã¥ãŒããŒãã®ãµã€ãºã«å¿çããã¡ãã£ã¢ã¯ãšãªãšã¯ç°ãªããã³ã³ããã¯ãšãªã¯ã³ã³ããŒãã³ããããããå²ãèŠçŽ ã®ãµã€ãºã«åºã¥ããŠé©å¿ããããšãå¯èœã«ããŸããããã«ãããããã¢ãžã¥ã©ãŒã§åå©çšå¯èœãªUIã³ã³ããŒãã³ããå®çŸããŸãããããããããžã§ã¯ãã倧ãããªãã«ã€ããŠãã³ã³ããåã®è¡çªãšããå ±éã®åé¡ã«çŽé¢ããå¯èœæ§ããããŸãããã®èšäºã§ã¯ããããã®ç«¶åãçè§£ã蚺æã解決ããã³ã³ããã¯ãšãªãæåŸ éãã«æ©èœããããã«ããæ¹æ³ãæãäžããŸãã
ã³ã³ããã¯ãšãªã®ååã®è¡çªãçè§£ãã
ã³ã³ããã¯ãšãªã¯ãã³ã³ããã³ã³ããã¹ããšããŠæç€ºçã«æå®ãããç¹å®ã®èŠçŽ ãã¿ãŒã²ããã«ããŸããããã¯container-typeããããã£ããããŠä»»æã§container-nameã䜿çšããŠå®çŸãããŸããåãcontainer-nameãè€æ°ã®ã³ã³ããèŠçŽ ã«å²ãåœãŠããšãè¡çªãçºçããŸãããã©ãŠã¶ã¯ã¯ãšãªãã©ã®ã³ã³ããèŠçŽ ãåç
§ãã¹ããã倿ããå¿
èŠãããããã®åäœã¯äºæž¬äžå¯èœãŸãã¯äžè²«æ§ã®ãªããã®ã«ãªãå¯èœæ§ããããŸããããã¯ã倿°ã®ã³ã³ããŒãã³ããæã€å€§èŠæš¡ãªãããžã§ã¯ãããåœåèŠåãéè€ããå¯èœæ§ã®ããCSSãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠããå Žåã«ç¹ã«åé¡ãšãªããŸãã
äŸãæããŠèª¬æããŸãããïŒ
.card {
container-type: inline-size;
container-name: card-container;
}
.sidebar {
container-type: inline-size;
container-name: card-container; /* è¡çªïŒ */
}
@container card-container (min-width: 400px) {
.element-inside {
color: blue;
}
}
ãã®ã·ããªãªã§ã¯ã.cardãš.sidebarã®äž¡æ¹ã«åãã³ã³ããåcard-containerãå²ãåœãŠãããŠããŸããã³ã³ããã¯ãšãª@container card-container (min-width: 400px)ãããªã¬ãŒããããšããã©ãŠã¶ã¯ããã¥ã¡ã³ãã®æ§é ããã©ãŠã¶ã®å®è£
ã«å¿ããŠã.cardãŸãã¯.sidebarã®ããããã®ãµã€ãºã«åºã¥ããŠã¹ã¿ã€ã«ãé©çšããå¯èœæ§ããããŸãããã®äºæž¬äžå¯èœæ§ããã³ã³ããåã®è¡çªã®æ¬è³ªã§ãã
ãªãã³ã³ããåã®è¡çªãèµ·ããã®ã
ã³ã³ããåã®è¡çªã«ã¯ããã€ãã®èŠå ãå¯äžããŠããŸãïŒ
- åœåèŠåã®æ¬ åŠïŒæç¢ºã§äžè²«ããåœåæŠç¥ããªããšãã¢ããªã±ãŒã·ã§ã³ã®ç°ãªãéšåã§èª€ã£ãŠåãååãåå©çšãããããªããŸãã
- ã³ã³ããŒãã³ãã®åå©çšæ§ïŒç°ãªãã³ã³ããã¹ãã§ã³ã³ããŒãã³ããåå©çšããéãã³ã³ããåã®èª¿æŽãå¿ããç«¶åã«ã€ãªããããšããããŸããããã¯ç¹ã«ã³ãŒãã®ã³ããŒïŒããŒã¹ãã§ããèŠãããŸãã
- CSSãã¬ãŒã ã¯ãŒã¯ïŒãã¬ãŒã ã¯ãŒã¯ã¯éçºãé«éåã§ããŸãããããã©ã«ãã®ã³ã³ããåãæ±çšçã§ç¬èªã®ååãšéè€ããå Žåãåœåã®è¡çªãåŒãèµ·ããå¯èœæ§ããããŸãã
- å€§èŠæš¡ãªã³ãŒãããŒã¹ïŒå€§èŠæš¡ã§è€éãªãããžã§ã¯ãã§ã¯ããã¹ãŠã®ã³ã³ããåã远跡ããã®ãé£ãããªããå¶çºçãªåå©çšã®å¯èœæ§ãé«ãŸããŸãã
- ããŒã ã§ã®å ±åäœæ¥ïŒè€æ°ã®éçºè ãåããããžã§ã¯ãã§äœæ¥ããŠããå Žåãäžè²«æ§ã®ãªãåœåæ¹æ³ã容æã«è¡çªã«ã€ãªããå¯èœæ§ããããŸãã
ã³ã³ããåã®è¡çªã蚺æãã
ã³ã³ããåã®è¡çªãç¹å®ããã®ã¯é£ããå ŽåããããŸãããªããªãããã®åœ±é¿ãããã«æããã«ãªããªãããšãããããã§ãããããã®åé¡ã蚺æããããã«äœ¿çšã§ããããã€ãã®æŠç¥ã玹ä»ããŸãïŒ
1. ãã©ãŠã¶éçºè ããŒã«
ã»ãšãã©ã®ã¢ãã³ãã©ãŠã¶ã¯ãèšç®æžã¿ã¹ã¿ã€ã«ãæ€æ»ããã©ã®ã³ã³ããã¯ãšãªãé©çšãããŠããããç¹å®ããã®ã«åœ¹ç«ã€åªããéçºè ããŒã«ãæäŸããŠããŸãããã©ãŠã¶ã®éçºè ããŒã«ïŒéåžžã¯F12ããŒã§éãïŒãéããã³ã³ããã¯ãšãªã®åœ±é¿ãåããŠãããšæãããèŠçŽ ãéžæãããComputedããŸãã¯ãStylesãã¿ãã調ã¹ãŸããããã«ãããã©ã®ã³ã³ããã«åºã¥ããŠã©ã®ã¹ã¿ã€ã«ãé©çšãããŠãããã衚瀺ãããŸãã
2. ã³ã³ããã¯ãšãªã€ã³ã¹ãã¯ã¿ãŒæ¡åŒµæ©èœ
ã³ã³ããã¯ãšãªã®å¯èŠåãšãããã°ãæ¯æŽããããã«ç¹å¥ã«èšèšããããã©ãŠã¶æ¡åŒµæ©èœãããã€ããããŸãããããã®æ¡åŒµæ©èœã¯ãã³ã³ããèŠçŽ ã®ãã€ã©ã€ããã¢ã¯ãã£ããªã³ã³ããã¯ãšãªã®è¡šç€ºãã³ã³ãããµã€ãºã®è¡šç€ºãªã©ã®æ©èœãæäŸããããšããããããŸããã䜿ãã®ãã©ãŠã¶ã®æ¡åŒµæ©èœã¹ãã¢ã§ãCSS Container Query Inspectorããæ€çŽ¢ããŠã¿ãŠãã ããã
3. æåã§ã®ã³ãŒãã¬ãã¥ãŒ
æã«ã¯ãè¡çªãèŠã€ããæè¯ã®æ¹æ³ã¯ãåã«CSSã³ãŒããèªã¿éããåãcontainer-nameãè€æ°ã®èŠçŽ ã§äœ¿çšãããŠããã€ã³ã¹ã¿ã³ã¹ãæ¢ãããšã§ããããã¯é¢åãããããŸããããå€§èŠæš¡ãªãããžã§ã¯ãã§ã¯ãã°ãã°å¿
èŠã§ãã
4. èªåãªã³ã¿ãŒãšéçè§£æ
æœåšçãªã³ã³ããåã®è¡çªãèªåçã«æ€åºããããã«ãCSSãªã³ã¿ãŒãéçè§£æããŒã«ã®äœ¿çšãæ€èšããŠãã ããããããã®ããŒã«ã¯ãã³ãŒããã¹ãã£ã³ããŠéè€ããååãèŠã€ããæœåšçãªåé¡ã«ã€ããŠèŠåããŸããStylelintã¯ãç¹å®ã®åœåèŠåã匷å¶ããè¡çªãæ€åºããããã«èšå®ã§ããã人æ°ã®ãã匷åãªCSSãªã³ã¿ãŒã§ãã
ã³ã³ããåã®è¡çªã解決ããïŒæŠç¥ãšãã¹ããã©ã¯ãã£ã¹
ã³ã³ããåã®è¡çªãç¹å®ããããæ¬¡ã®ã¹ãããã¯ããã解決ããããšã§ãã以äžã«ãåŸãã¹ãããã€ãã®æŠç¥ãšãã¹ããã©ã¯ãã£ã¹ã玹ä»ããŸãïŒ
1. äžæã®åœåèŠå
æãåºæ¬çãªè§£æ±ºçã¯ãã³ã³ããåã«äžè²«æ§ã®ããäžæã®åœåèŠåãæ¡çšããããšã§ããããã«ãããå¶çºçãªåå©çšãé²ããã³ãŒãã®ä¿å®æ§ãé«ããããšãã§ããŸãã以äžã®ã¢ãããŒããæ€èšããŠãã ããïŒ
- ã³ã³ããŒãã³ãåºæã®ååïŒæå±ããã³ã³ããŒãã³ãã«åºæã®ã³ã³ããåã䜿çšããŸããäŸãã°ã
card-containerã®ä»£ããã«ãååã«ãŒãã³ã³ããŒãã³ãã«ã¯product-card-containerãèšäºã«ãŒãã³ã³ããŒãã³ãã«ã¯article-card-containerã䜿çšããŸãã - BEM (Block, Element, Modifier)ïŒBEMã®æ¹æ³è«ã¯ã³ã³ããåã«ãæ¡åŒµã§ããŸãããããã¯åãã³ã³ããåã®ããŒã¹ãšããŠäœ¿çšããŸããäŸãã°ã
.productãšãããããã¯ãããå Žåãã³ã³ããåã¯product__containerã®ããã«ãªããŸãã - åå空éïŒåå空éã䜿çšããŠé¢é£ããã³ã³ããåãã°ã«ãŒãåããŸããäŸãã°ãã¢ããªã±ãŒã·ã§ã³ã®ç®¡çè
ã»ã¯ã·ã§ã³å
ã®ã³ã³ããåã«ã¯
admin-ã®ãããªãã¬ãã£ãã¯ã¹ã䜿çšã§ããŸãã - ãããžã§ã¯ãåºæã®ãã¬ãã£ãã¯ã¹ïŒãµãŒãããŒãã£ã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãšã®è¡çªãé¿ããããã«ããã¹ãŠã®ã³ã³ããåã«ãããžã§ã¯ãåºæã®ãã¬ãã£ãã¯ã¹ã远å ããŸããäŸãã°ããããžã§ã¯ãåããAcmeãã®å Žåã
acme-ãšãããã¬ãã£ãã¯ã¹ã䜿çšã§ããŸãã
ã³ã³ããŒãã³ãåºæã®ååã䜿çšããäŸïŒ
.product-card {
container-type: inline-size;
container-name: product-card-container;
}
.article-card {
container-type: inline-size;
container-name: article-card-container;
}
@container product-card-container (min-width: 400px) {
.element-inside {
color: blue;
}
}
2. CSSã¢ãžã¥ãŒã«
CSSã¢ãžã¥ãŒã«ã¯ãCSSã¯ã©ã¹ãšã³ã³ããåãç¹å®ã®ã³ã³ããŒãã³ãã«èªåçã«ã¹ã³ãŒãããæ¹æ³ãæäŸããŸããããã«ãããåã³ã³ããŒãã³ããç¬èªã®åé¢ãããåå空éãæã€ããšãä¿èšŒãããåœåã®è¡çªãé²ãããŸããCSSã¢ãžã¥ãŒã«ã䜿çšãããšãã³ã³ããåã¯èªåçã«çæãããäžæã§ããããšãä¿èšŒãããŸãã
CSSã¢ãžã¥ãŒã«ã䜿çšããäŸïŒWebpackã®ãããªCSSã¢ãžã¥ãŒã«ããµããŒããããã³ãã©ãæ³å®ïŒïŒ
/* ProductCard.module.css */
.container {
container-type: inline-size;
container-name: productCardContainer;
}
/* ArticleCard.module.css */
.container {
container-type: inline-size;
container-name: articleCardContainer;
}
JavaScriptã³ã³ããŒãã³ãå ïŒ
import styles from './ProductCard.module.css';
function ProductCard() {
return (
<div className={styles.container}>
{/* ... */}
</div>
);
}
ãã³ãã©ã¯èªåçã«container-nameãäžæã®èå¥åã«å€æããè¡çªãé²ããŸãã
3. Shadow DOM
Shadow DOMã¯ãã«ã¹ã¿ã èŠçŽ å ã«ã¹ã¿ã€ã«ãã«ãã»ã«åããæ¹æ³ãæäŸããŸããããã¯ãShadow DOMå ã§å®çŸ©ãããã¹ã¿ã€ã«ãããã¥ã¡ã³ãã®ä»ã®éšåããåé¢ãããåœåã®è¡çªãé²ãããããšãæå³ããŸããã«ã¹ã¿ã èŠçŽ ã䜿çšããŠããå Žåã¯ãShadow DOMã䜿çšããŠã³ã³ããåãã¹ã³ãŒãããããšãæ€èšããŠãã ããã
Shadow DOMã䜿çšããäŸïŒ
class MyComponent extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
.container {
container-type: inline-size;
container-name: myComponentContainer;
}
@container myComponentContainer (min-width: 400px) {
.element-inside {
color: blue;
}
}
</style>
<div class="container">
<slot></slot>
</div>
`;
}
}
customElements.define('my-component', MyComponent);
my-componentã®Shadow DOMå
ã§å®çŸ©ãããã¹ã¿ã€ã«ãšã³ã³ããåã¯åé¢ãããŠãããããã¥ã¡ã³ãã®ä»ã®å Žæã§å®çŸ©ãããã¹ã¿ã€ã«ãšè¡çªããããšã¯ãããŸããã
4. æ±çšçãªååãé¿ãã
containerãwrapperãboxã®ãããªæ±çšçãªã³ã³ããåã®äœ¿çšã¯é¿ããŠãã ããããããã®ååã¯è€æ°ã®å Žæã§äœ¿çšãããå¯èœæ§ãé«ããè¡çªã®ãªã¹ã¯ãé«ããŸãã代ããã«ãã³ã³ããã®ç®çãåæ ããããã説æçã§å
·äœçãªååã䜿çšããŠãã ããã
5. ãããžã§ã¯ãéã§ã®äžè²«ããåœå
è€æ°ã®ãããžã§ã¯ãã§äœæ¥ããŠããå Žåã¯ãããããã¹ãŠã§äžè²«ããåœåèŠåã確ç«ããããã«ããŠãã ãããããã«ãããç°ãªããããžã§ã¯ãã§èª€ã£ãŠåãã³ã³ããåãåå©çšããããšãé²ãã®ã«åœ¹ç«ã¡ãŸããåœåèŠåããã®ä»ã®CSSã®ãã¹ããã©ã¯ãã£ã¹ãæŠèª¬ããã¹ã¿ã€ã«ã¬ã€ããäœæããããšãæ€èšããŠãã ããã
6. ã³ãŒãã¬ãã¥ãŒ
宿çãªã³ãŒãã¬ãã¥ãŒã¯ãæœåšçãªã³ã³ããåã®è¡çªãåé¡ã«ãªãåã«çºèŠããã®ã«åœ¹ç«ã¡ãŸããããŒã ã¡ã³ããŒããäºãã®ã³ãŒããã¬ãã¥ãŒããåãcontainer-nameãè€æ°ã®èŠçŽ ã§äœ¿çšãããŠããã€ã³ã¹ã¿ã³ã¹ãæ¢ãããšã奚å±ããŠãã ããã
7. ããã¥ã¡ã³ããŒã·ã§ã³
åœåèŠåããã®ä»ã®CSSã®ãã¹ããã©ã¯ãã£ã¹ãããã¹ãŠã®ããŒã ã¡ã³ããŒãç°¡åã«ã¢ã¯ã»ã¹ã§ããäžå€®ã®å Žæã«ææžåããŠãã ãããããã«ãããå šå¡ãåãã¬ã€ãã©ã€ã³ã«åŸã£ãŠããããšã確èªããæ°ããéçºè ããããžã§ã¯ãã®ã³ãŒãã£ã³ã°æšæºãè¿ éã«åŠã¶ã®ã«åœ¹ç«ã¡ãŸãã
8. 詳现床ã䜿çšããŠã¹ã¿ã€ã«ãäžæžãããïŒæ³šæããŠäœ¿çšïŒ
å Žåã«ãã£ãŠã¯ãCSSã®è©³çŽ°åºŠã䜿çšããŠç«¶åããã³ã³ããã¯ãšãªã«ãã£ãŠé©çšãããã¹ã¿ã€ã«ãäžæžãããããšã§ãã³ã³ããåã®è¡çªã解決ã§ããå ŽåããããŸãããã ãããã®ã¢ãããŒãã¯CSSãçè§£ãã«ãããä¿å®ãã«ããããå¯èœæ§ããããããæ³šæããŠäœ¿çšããå¿ èŠããããŸããäžè¬çã«ã¯ãæ ¹æ¬çãªåœåã®è¡çªãçŽæ¥è§£æ±ºããæ¹ãè¯ãã§ãã
äŸïŒ
.card {
container-type: inline-size;
container-name: card-container;
}
.sidebar {
container-type: inline-size;
container-name: card-container; /* è¡çªïŒ */
}
@container card-container (min-width: 400px) {
.element-inside {
color: blue; /* .cardãŸãã¯.sidebarã®ã©ã¡ããã«åºã¥ããŠé©çšãããå¯èœæ§ãã */
}
}
/* .cardå
ã®.element-insideã®ã¹ã¿ã€ã«ãç¹ç°çã«äžæžã */
.card .element-inside {
color: green !important; /* ããé«ã詳现床ãåã®ã«ãŒã«ãäžæžã */
}
!importantã®äœ¿çšã¯äžè¬çã«æšå¥šãããŸããããå
ã®CSSãç°¡åã«å€æŽã§ããªããµãŒãããŒãã£ã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãæ±ãå Žåãªã©ãç¹å®ã®ç¶æ³ã§ã¯åœ¹ç«ã€ããšããããŸãã
åœéåïŒi18nïŒã«é¢ããèæ ®äºé
åœéçãªãªãŒãã£ãšã³ã¹ãæã€ãŠã§ããµã€ããéçºããéã«ã¯ãã³ã³ããåãç°ãªãèšèªãæžåæ¹åã«ã©ã®ããã«åœ±é¿ãããããèæ ®ããŠãã ãããäŸãã°ãè±èªã®åèªãå«ãã³ã³ããåã䜿çšããŠããå Žåããããä»ã®èšèªã§æå³ããªãæå³ãæããªãããšã確èªããŠãã ãããããã«ãäžéšã®èšèªã¯å³ããå·ŠïŒRTLïŒã«æžããããããã³ã³ããŒãã³ãã®ã¬ã€ã¢ãŠããã¹ã¿ã€ã«ã«åœ±é¿ãäžããå¯èœæ§ãããããšã«æ³šæããŠãã ããã
ãããã®åé¡ã«å¯ŸåŠããããã«ã以äžã®æŠç¥ãæ€èšããŠãã ããïŒ
- èšèªã«äžç«ãªã³ã³ããåã䜿çšããïŒå¯èœã§ããã°ãç¹å®ã®èšèªã«çžãããªãã³ã³ããåã䜿çšããŠãã ãããäŸãã°ãç°ãªãæååã§å®¹æã«çè§£ã§ããæ°å€èå¥åãç¥èªã䜿çšã§ããŸãã
- ãã±ãŒã«ã«åºã¥ããŠã³ã³ããåãé©å¿ãããïŒããŒã«ãªãŒãŒã·ã§ã³ã©ã€ãã©ãªã䜿çšããŠããŠãŒã¶ãŒã®ãã±ãŒã«ã«åºã¥ããŠã³ã³ããåãé©å¿ãããŸããããã«ãããç°ãªãèšèªãå°åã«å¯ŸããŠç°ãªãã³ã³ããåã䜿çšã§ããŸãã
- è«çããããã£ã䜿çšããïŒ
leftãrightã®ãããªç©ççãªããããã£ã®ä»£ããã«ãstartãendã®ãããªè«çããããã£ã䜿çšããŸãããããã®ããããã£ã¯ãçŸåšã®ãã±ãŒã«ã®æžåæ¹åã«èªåçã«é©å¿ããŸãã
ã¢ã¯ã»ã·ããªãã£ïŒa11yïŒã«é¢ããèæ ®äºé
ã³ã³ããã¯ãšãªã¯ã¢ã¯ã»ã·ããªãã£ã«ã圱é¿ãäžããå¯èœæ§ããããŸããã¬ã¹ãã³ã·ããã¶ã€ã³ãé害ãæã€ãŠãŒã¶ãŒã«ãšã£ãŠã¢ã¯ã»ã¹å¯èœã§ããããšãä¿èšŒããããã«ã以äžã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããïŒ
- ã»ãã³ãã£ãã¯HTMLã䜿çšããïŒã»ãã³ãã£ãã¯HTMLèŠçŽ ã䜿çšããŠãã³ã³ãã³ãã«æç¢ºã§æå³ã®ããæ§é ãæäŸããŸããããã«ãããæ¯æŽæè¡ãåèŠçŽ ã®ç®çãçè§£ãããŠãŒã¶ãŒã«é©åãªæ å ±ãæäŸããã®ã«åœ¹ç«ã¡ãŸãã
- ç»åã«ä»£æ¿ããã¹ããæäŸããïŒç»åãèŠãããšãã§ããªããŠãŒã¶ãŒã«ãã®å 容ã説æããããã«ãåžžã«ç»åã«ä»£æ¿ããã¹ããæäŸããŠãã ããã
- ååãªè²ã®ã³ã³ãã©ã¹ãã確ä¿ããïŒããã¹ããšèæ¯ã®è²ã®ã³ã³ãã©ã¹ãããã¢ã¯ã»ã·ããªãã£ã¬ã€ãã©ã€ã³ãæºããã®ã«ååã§ããããšã確èªããŠãã ããã
- æ¯æŽæè¡ã§ãã¹ãããïŒã¹ã¯ãªãŒã³ãªãŒããŒã®ãããªæ¯æŽæè¡ã§ãŠã§ããµã€ãããã¹ãããé害ãæã€ãŠãŒã¶ãŒãã¢ã¯ã»ã¹ã§ããããšã確èªããŠãã ããã
çµè«
CSSã³ã³ããã¯ãšãªã¯ãã¬ã¹ãã³ã·ããŠã§ãéçºã®ããŒã«ãããã«äŸ¡å€ããè¿œå æ©èœã§ããã³ã³ããåã®è¡çªãçè§£ã察åŠããããšã§ãå ç¢ã§ä¿å®æ§ãé«ããçã«ã¬ã¹ãã³ã·ããªUIã³ã³ããŒãã³ããæ§ç¯ã§ããŸããæç¢ºãªåœåèŠåã®å®è£ ãCSSã¢ãžã¥ãŒã«ãShadow DOMã®æŽ»çšãã³ãŒãã¬ãã¥ãŒã®çµã¿èŸŒã¿ã¯ããããã®åé¡ã鲿¢ã解決ããããã®éµã§ããåœéåãšã¢ã¯ã»ã·ããªãã£ãèæ ®ããŠãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã®ããã®å æ¬çãªãã¶ã€ã³ãäœæããããšãå¿ããªãã§ãã ããããããã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãã³ã³ããã¯ãšãªã®å¯èœæ§ãæå€§éã«åŒãåºããåè¶ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåµåºã§ããŸãã
å®è·µçãªæŽå¯ïŒ
- ãŸããæ¢åã®CSSã³ãŒãããŒã¹ãç£æ»ããŠãæœåšçãªã³ã³ããåã®è¡çªãæ¢ãããšããå§ããŸãã
- ãã¹ãŠã®ã³ã³ããåã«å¯ŸããŠãäžæã§äžè²«ããåœåèŠåãå®è£ ããŸãã
- CSSã¢ãžã¥ãŒã«ãShadow DOMã䜿çšããŠã³ã³ããåãã¹ã³ãŒãããããšãæ€èšããŸãã
- éçºããã»ã¹ã«ã³ãŒãã¬ãã¥ãŒãçµã¿èŸŒã¿ãæœåšçãªè¡çªãæ©æã«çºèŠããŸãã
- åœåèŠåãšCSSã®ãã¹ããã©ã¯ãã£ã¹ãäžå€®ã®å Žæã«ææžåããŸãã
- ãã¶ã€ã³ãç°ãªãç»é¢ãµã€ãºãæ¯æŽæè¡ã§ãã¹ãããã¢ã¯ã»ã·ããªãã£ã確ä¿ããŸãã