CSS @scopeã®åãæ¢æ±ããã¢ãžã¥ãŒã«åããä¿å®æ§ã®é«ãã¹ã¿ã€ã«ã·ãŒããäœæããæ¹æ³ãåŠã³ãŸããè€éãªWebã¢ããªã§ã®CSSã®ç«¶åãç°¡åã«åé¿ããŸãããã
CSS @scope: ã¹ã³ãŒãä»ãã¹ã¿ã€ãªã³ã°ã®åŸ¹åºè§£èª¬
Webã¢ããªã±ãŒã·ã§ã³ããŸããŸãè€éã«ãªãã«ã€ããŠãCSSã¹ã¿ã€ã«ã·ãŒãã®ç®¡çã¯å€§ããªèª²é¡ãšãªãåŸãŸããã°ããŒãã«ãªã¹ã¿ã€ã«ã·ãŒãã¯ãæåã¯å®è£
ãç°¡åã§ãããæå³ããªãã¹ã¿ã€ã«ã®ç«¶åãã¡ã³ããã³ã¹ã®é çã®çš®ã«ãªãããšããããããŸãããããã®åé¡ã«å¯ŸåŠããããã«ãCSSã¢ãžã¥ãŒã«ãBEMïŒBlock, Element, ModifierïŒã®ãããªæè¡ãç»å ŽããŸããããçŸåšãCSSã¯ãã€ãã£ããªè§£æ±ºçã§ãã@scope
ã¢ããã«ãŒã«ãæäŸããŠããŸãããã®ããã°èšäºã§ã¯ã@scope
ã«ã€ããŠããã®ç®çãæ§æãå©ç¹ããããŠå€æ§ãªäŸãçšããå®è·µçãªäœ¿ãæ¹ãå
æ¬çã«æ¢æ±ããŸãã
CSS @scopeãšã¯ïŒ
@scope
ã¢ããã«ãŒã«ã䜿çšãããšãããã¥ã¡ã³ãã®ç¹å®ã®é åå
ã§ã®ã¿é©çšãããã¹ã¿ã€ãªã³ã°ã«ãŒã«ãå®çŸ©ã§ããŸããããã«ãããã¹ã¿ã€ã«ãã«ãã»ã«åããã¢ããªã±ãŒã·ã§ã³ã®ä»ã®éšåã«èª€ã£ãŠåœ±é¿ãäžããã®ãé²ã匷åãªæ¹æ³ãæäŸãããŸããããã¯ç¹ã«æ¬¡ã®ãããªå Žåã«åœ¹ç«ã¡ãŸãïŒ
- ã³ã³ããŒãã³ãããŒã¹ã®ã¢ãŒããã¯ãã£ïŒåã ã®ã³ã³ããŒãã³ãã®ã¹ã¿ã€ã«ãåé¢ããåšå²ã®ã³ã³ããã¹ãã«é¢ä¿ãªãæ£ããã¬ã³ããªã³ã°ãããããã«ããŸãã
- ãµãŒãããŒãã£ã®ã©ã€ãã©ãªãšãŠã£ãžã§ããïŒæ¢åã®CSSãšã®ã¹ã¿ã€ã«ã®è¡çªããªã¹ã¯ãªãã«ãå€éšã³ã³ããŒãã³ããåã蟌ã¿ãŸãã
- å€§èŠæš¡ã§è€éãªã¢ããªã±ãŒã·ã§ã³ïŒã¹ã¿ã€ã«ã«ãŒã«ã®ã¹ã³ãŒããæžããããšã§ãCSSã³ãŒãããŒã¹ã®ä¿å®æ§ãšäºæž¬å¯èœæ§ãåäžãããŸãã
æ¬è³ªçã«ã@scope
ã¯å¢çãäœæããCSSã«ãŒã«ã®ç¯å²ãå¶éããããã¢ãžã¥ã©ãŒã§æŽçãããã¹ã¿ã€ãªã³ã°ã¢ãããŒããä¿é²ããŸãã
@scopeã®æ§æ
@scope
ã¢ããã«ãŒã«ã®åºæ¬çãªæ§æã¯æ¬¡ã®ãšããã§ãïŒ
@scope (<scope-start>) to (<scope-end>) {
/* CSS rules */
}
ãã®æ§æã®åéšåãåè§£ããŠã¿ãŸãããïŒ
@scope
: ã¹ã³ãŒãã³ã°ãéå§ããã¢ããã«ãŒã«ã§ãã<scope-start>
: ã¹ã³ãŒãã®éå§ç¹ãå®çŸ©ããã»ã¬ã¯ã¿ã§ãã@scope
ãããã¯å ã®ã¹ã¿ã€ã«ã¯ããã®èŠçŽ ãšãã®åå«ã«é©çšãããŸããçç¥ãããå Žåãããã¥ã¡ã³ãå šäœãã¹ã³ãŒãã®éå§ç¹ãšãªããŸããto
(optional): ã¹ã³ãŒãã®éå§ç¹ãšçµäºç¹ãåºåãããŒã¯ãŒãã§ãã<scope-end>
(optional): ã¹ã³ãŒãã®çµäºç¹ãå®çŸ©ããã»ã¬ã¯ã¿ã§ããã¹ã¿ã€ã«ã¯ãã®èŠçŽ ãšãã®åå«ã«ã¯é©çšãã*ãŸãã*ãçç¥ãããå Žåãã¹ã³ãŒãã¯ã¹ã³ãŒãéå§ç¹å ã®ããã¥ã¡ã³ãã®æåŸãŸã§æ¡åŒµãããŸãã{ /* CSS rules */ }
: å®çŸ©ãããã¹ã³ãŒãå ã§é©çšãããCSSã«ãŒã«ãå«ããããã¯ã§ãã
æ§æãã©ã®ããã«æ©èœãããã説æããããã®ããã€ãã®äŸã次ã«ç€ºããŸãïŒ
äŸ1ïŒåºæ¬çãªã¹ã³ãŒãã³ã°
ãã®äŸã§ã¯ãIDããmy-componentãã®ç¹å®ã®<div>
èŠçŽ ã«ã¹ã¿ã€ã«ãã¹ã³ãŒãããŸãïŒ
@scope (#my-component) {
h2 {
color: blue;
}
p {
font-size: 16px;
}
}
ãã®å Žåã<div id="my-component">
å
ã®h2
ããã³p
èŠçŽ ã¯ãããããéè²ã®ããã¹ããš16pxã®ãã©ã³ããµã€ãºã«ãªããŸãããããã®ã¹ã¿ã€ã«ã¯ããã®<div>
ã®å€ã«ããh2
ãŸãã¯p
èŠçŽ ã«ã¯åœ±é¿ããŸããã
äŸ2ïŒãtoãããŒã¯ãŒãã®äœ¿çš
ãã®äŸã§ã¯ãã¯ã©ã¹ããscoped-sectionãã®<section>
ããã<footer>
ã*å«ãŸãªã*ç¯å²ãŸã§ã¹ã¿ã€ã«ãã¹ã³ãŒãããŸãïŒ
@scope (.scoped-section) to (footer) {
p {
line-height: 1.5;
}
}
ããã§ã¯ã.scoped-section
å
ã®ãã¹ãŠã®<p>
èŠçŽ ã¯1.5ã®è¡é«ã«ãªããŸããã.scoped-section
ã®åå«ã§ãã<footer>
èŠçŽ å
ã«ããå Žåã¯*é€ããŸã*ãããã¿ãŒãååšããå Žåããã®ããã¿ãŒå
ã®`
`èŠçŽ ã¯ãã®ã¹ã³ãŒãã®åœ±é¿ãåããŸããã
äŸ3ïŒã¹ã³ãŒãéå§ç¹ã®çç¥
ã¹ã³ãŒãéå§ã»ã¬ã¯ã¿ãçç¥ãããšãã¹ã³ãŒãã¯ããã¥ã¡ã³ãã®ã«ãŒãããå§ãŸããŸãã
@scope to (footer) {
body {
background-color: #f0f0f0;
}
}
ããã¯ãfooter
èŠçŽ ã*å«ãŸãªã*ç¯å²ãŸã§ã`body`èŠçŽ ã«èãç°è²ã®èæ¯ãé©çšããŸããããã¿ãŒå
ã®ãã®ã¯ãèãç°è²ã®èæ¯è²ã«ã¯ãªããŸããã
@scopeã䜿çšããå©ç¹
@scope
ã¢ããã«ãŒã«ã¯ãWebéçºã«ãããŠããã€ãã®éèŠãªå©ç¹ãæäŸããŸãïŒ
- CSS詳现床å¶åŸ¡ã®åäžïŒ
@scope
ã¯ãç«¶åããã¹ã¿ã€ã«ãäžæžãããããã«é床ã«å ·äœçãªã»ã¬ã¯ã¿ïŒäŸïŒ!important
ã®äœ¿çšïŒã®å¿ èŠæ§ãæžãããŸããã«ãŒã«ã®ã¹ã³ãŒããå¶éããããšã§ãããäºæž¬å¯èœã§ç®¡çããããã¹ã¿ã€ã«ã«ã¹ã±ãŒããäœæã§ããŸãã - ã³ã³ããŒãã³ãåã®åŒ·åïŒçã®ã³ã³ããŒãã³ãã¬ãã«ã®ã¹ã¿ã€ãªã³ã°ãå¯èœã«ããã³ã³ããŒãã³ããCSSã®ç«¶åãå¿é ããããšãªãéçºããã³åå©çšã§ããŸããããã«ãããã³ãŒãã®åå©çšæ§ãä¿é²ããã倿Žãå ããéã«ãã°ãå°å ¥ãããªã¹ã¯ãæžå°ããŸãã
- CSSã®è¥å€§åã®åæžïŒã¹ã¿ã€ã«ãæå³ããªãé åã«æŒããã®ãé²ãããšã§ã
@scope
ã¯CSSãã¡ã€ã«ã®å šäœçãªãµã€ãºãåæžããã®ã«åœ¹ç«ã¡ãŸããããã«ãããããŒãžã®èªã¿èŸŒã¿æéãççž®ãããããã©ãŒãã³ã¹ãåäžããŸãã - ã¡ã³ããã³ã¹ã®ç°¡çŽ åïŒã¹ã¿ã€ã«å€æŽã®åœ±é¿ãå®çŸ©ãããã¹ã³ãŒãã«éå®ããããããCSSã³ãŒãã®çè§£ãšå€æŽã容æã«ãªããŸããããã«ãããæå³ããªãå¯äœçšã®å¯èœæ§ãæžãããããã°ã容æã«ãªããŸãã
- ã³ã©ãã¬ãŒã·ã§ã³ïŒåéçºè ãä»ã®äººã®ã¹ã¿ã€ã«ã劚ããããšãå¿é ããã«èªåã®ã³ã³ããŒãã³ãã§äœæ¥ã§ãããããéçºè éã®ããè¯ãã³ã©ãã¬ãŒã·ã§ã³ãä¿é²ããŸããããã¯ãè€éãªãããžã§ã¯ãã§äœæ¥ããå€§èŠæš¡ãªããŒã ã«ãšã£ãŠç¹ã«éèŠã§ãã
@scopeã®å®è·µçãªäœ¿çšäŸ
å®éã®ã·ããªãªã§@scope
ãã©ã®ããã«äœ¿çšã§ããããããã€ãã®å®è·µçãªäŸãèŠãŠã¿ãŸãããã
äŸ1ïŒããã²ãŒã·ã§ã³ã¡ãã¥ãŒã®ã¹ã¿ã€ãªã³ã°
ããŒãžã®ä»ã®èŠçŽ ããç¬ç«ããŠã¹ã¿ã€ã«ãèšå®ãããããã²ãŒã·ã§ã³ã¡ãã¥ãŒããããšããŸãã@scope
ã䜿çšããŠãã¡ãã¥ãŒã®ã¹ã¿ã€ã«ãã«ãã»ã«åã§ããŸãïŒ
HTML:
<nav id="main-nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
CSS:
@scope (#main-nav) {
ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
}
li {
margin-right: 20px;
}
a {
text-decoration: none;
color: #333;
font-weight: bold;
}
a:hover {
color: #007bff;
}
}
ãã®äŸã§ã¯ãããã²ãŒã·ã§ã³ã¡ãã¥ãŒã®ã¹ã¿ã€ã«ã¯<nav id="main-nav">
èŠçŽ ã«ã¹ã³ãŒããããŠããŸããããã«ãããã¡ãã¥ãŒã®ã¹ã¿ã€ãªã³ã°ãããŒãžäžã®ä»ã®<ul>
ã<li>
ããŸãã¯<a>
èŠçŽ ã«åœ±é¿ãäžããªãããšãä¿èšŒãããŸãã
äŸ2ïŒã¢ãŒãã«ãã€ã¢ãã°ã®ã¹ã¿ã€ãªã³ã°
ã¢ãŒãã«ã¯ãæ
å ±ã衚瀺ãããããŠãŒã¶ãŒå
¥åãåéãããããããã«Webã¢ããªã±ãŒã·ã§ã³ã§ãã䜿çšãããŸãã@scope
ã䜿çšãããšãåºã«ãªãããŒãžã®ã¹ã¿ã€ã«ã«åœ±é¿ãäžããããšãªãã¢ãŒãã«ãã¹ã¿ã€ãªã³ã°ã§ããŸãïŒ
HTML: <div id="my-modal" class="modal"> <div class="modal-content"> <span class="close">×</span> <h2>Modal Title</h2> <p>This is the content of the modal.</p> </div> </div>
CSS:
@scope (#my-modal) {
.modal {
display: block; /* Or 'flex' for centering */
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.4);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
}
ããã§ã¯ãã¢ãŒãã«ã®ã¹ã¿ã€ã«ã¯<div id="my-modal">
èŠçŽ ã«ã¹ã³ãŒããããŠããŸããããã«ãããã¢ãŒãã«ã®ã¹ã¿ã€ãªã³ã°ãããŒãžäžã®ä»ã®èŠçŽ ã®ã¹ã¿ã€ãªã³ã°ã«å¹²æžããªãããšããŸããã®éãä¿èšŒãããŸãã
äŸ3ïŒãµãŒãããŒãã£ãŠã£ãžã§ããã®ã¹ã¿ã€ãªã³ã°
ãµãŒãããŒãã£ã®ãŠã£ãžã§ãããã©ã€ãã©ãªãWebã¢ããªã±ãŒã·ã§ã³ã«åã蟌ãéãèªåã®CSSãšç«¶åããªãããã«ã¹ã¿ã€ã«ãåé¢ãããããšããããããŸãã@scope
ã¯ãããç°¡åã«ããŸãïŒ
<div id="calendar-widget">
å
ã«ã¬ã³ããªã³ã°ãããã«ã¬ã³ããŒãŠã£ãžã§ããã䜿çšããŠãããšããŸããæ¬¡ã®ããã«ãŠã£ãžã§ããã®ã¹ã¿ã€ã«ãã¹ã³ãŒãã§ããŸãïŒ
@scope (#calendar-widget) {
/* Styles specific to the calendar widget */
.calendar {
width: 300px;
border: 1px solid #ccc;
}
.calendar-header {
background-color: #eee;
padding: 10px;
text-align: center;
}
.calendar-day {
padding: 5px;
text-align: center;
}
}
ããã«ããã@scope
ãããã¯å
ã§å®çŸ©ãããã¹ã¿ã€ã«ã<div id="calendar-widget">
å
ã®èŠçŽ ã«ã®ã¿åœ±é¿ãäžããã¢ããªã±ãŒã·ã§ã³ã®ä»ã®éšåã«æå³ããªãå¯äœçšãçããã®ãé²ããŸãã
@scopeãšä»ã®CSSã«ãã»ã«åæè¡ã®æ¯èŒ
@scope
ã¯ã¹ã³ãŒãä»ãã¹ã¿ã€ãªã³ã°ã®ããã®ãã€ãã£ããªCSSãœãªã¥ãŒã·ã§ã³ãæäŸããŸãããCSSã¢ãžã¥ãŒã«ãShadow DOMãªã©ã®ä»ã®æè¡ãåæ§ã®ç®æšãéæããããã«äœ¿çšãããŠããŸããããããã®ã¢ãããŒããæ¯èŒããŠã¿ãŸãããïŒ
CSSã¢ãžã¥ãŒã«
CSSã¢ãžã¥ãŒã«ã¯ãã¢ãžã¥ã©ãŒCSSãžã®äººæ°ã®ããã¢ãããŒãã§ãããã«ãããã»ã¹äžã«CSSã¯ã©ã¹åãäžæã®ããŒã«ã«ã¹ã³ãŒãåã«å€æããããšã§æ©èœããŸããããã«ãããã¯ã©ã¹åã®è¡çªãé²ãããã¹ã¿ã€ã«ãåã ã®ã³ã³ããŒãã³ãå ã«ã«ãã»ã«åãããããšãä¿èšŒãããŸãã
é·æïŒ
- ãã«ãããŒã«ããã¬ãŒã ã¯ãŒã¯ã§åºããµããŒããããŠããŸãã
- æ¢åã®ãããžã§ã¯ãã«ç°¡åã«äœ¿çšããã³çµ±åã§ããŸãã
çæïŒ
- ãã«ãããã»ã¹ãå¿ èŠã§ãã
- ã¹ã³ãŒãã³ã°ã匷å¶ããããã«åœåèŠåãšããŒã«ã«äŸåããŸãã
Shadow DOM
Shadow DOMã¯ãã¹ã¿ã€ã«ãå«ãããã¥ã¡ã³ãããªãŒã®äžéšãã«ãã»ã«åããæ¹æ³ãæäŸããŸããã·ã£ããŠããªãŒãšã¡ã€ã³ããã¥ã¡ã³ãã®éã«å¢çãäœæããã¹ã¿ã€ã«ãå å€ã«æŒããã®ãé²ããŸãã
é·æïŒ
- 匷åãªã¹ã¿ã€ã«åé¢ãæäŸããŸãã
- ã«ã¹ã¿ã èŠçŽ ãšWeb ComponentsããµããŒãããŸãã
çæïŒ
- 䜿çšãè€éã«ãªãããšããããŸãã
- æ¢åã®ã³ãŒãã«å€§å¹ ãªå€æŽãå¿ èŠã«ãªãå ŽåããããŸãã
- CSSã¢ãžã¥ãŒã«ã»ã©åºããµããŒããããŠããŸããã
@scope
@scope
ã¯ãCSSã¢ãžã¥ãŒã«ãšShadow DOMã®äžéçãªäœçœ®ã¥ãã§ãããã«ãããã»ã¹ãè€éãªDOMæäœãå¿
èŠãšããã«ãã¹ã³ãŒãä»ãã¹ã¿ã€ãªã³ã°ã®ããã®ãã€ãã£ããªCSSãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã
é·æïŒ
- ãã€ãã£ããªCSSãœãªã¥ãŒã·ã§ã³ã§ãã
- ãã«ãããã»ã¹ã¯äžèŠã§ãã
- æ¯èŒçç°¡åã«äœ¿çšã§ããŸãã
çæïŒ
- ãã©ãŠã¶ã®ãµããŒãã¯ãŸã é²åäžã§ãã
- Shadow DOMã»ã©åŒ·åãªåé¢ãæäŸããªãå ŽåããããŸãã
ã©ã®æè¡ã䜿çšãããã®éžæã¯ãç¹å®ã®ããŒãºãšãããžã§ã¯ãã®èŠä»¶ã«äŸåããŸãã匷åãªã¹ã¿ã€ã«åé¢ãå¿
èŠã§ãWeb Componentsãæ±ã£ãŠããå Žåã¯ãShadow DOMãæè¯ã®éžæãããããŸãããã·ã³ãã«ã§åºããµããŒããããŠãããœãªã¥ãŒã·ã§ã³ãå¿
èŠãªå Žåã¯ãCSSã¢ãžã¥ãŒã«ãè¯ãéžæè¢ãããããŸããããã«ãããã»ã¹ãå¿
èŠãšããªããã€ãã£ããªCSSãœãªã¥ãŒã·ã§ã³ã奜ãå Žåã¯ã@scope
ãæ€èšãã䟡å€ããããŸãã
ãã©ãŠã¶ã®ãµããŒããšããªãã£ã«
2024幎åŸåçŸåšã@scope
ã®ãã©ãŠã¶ãµããŒãã¯æ¡å€§ããŠããŸããããŸã æ®éçã«å©çšã§ããããã§ã¯ãããŸããããã©ãŠã¶ã®äºææ§ã«é¢ããææ°æ
å ±ã«ã€ããŠã¯ãCan I useã確èªããŠãã ããã
å€ããã©ãŠã¶ããµããŒãããå¿
èŠãããå Žåã¯ãããªãã£ã«ã䜿çšããŠ@scope
æ©èœãæäŸã§ããŸããããã€ãã®ããªãã£ã«ãå©çšå¯èœã§ããããã¯éåžžããã«ãããã»ã¹äžã«@scope
ã«ãŒã«ãåçã®CSSã»ã¬ã¯ã¿ã«å€æããããšã§æ©èœããŸãã
@scopeã䜿çšããããã®ãã¹ããã©ã¯ãã£ã¹
@scope
ãæå€§éã«æŽ»çšããããã«ããããã®ãã¹ããã©ã¯ãã£ã¹ãèæ
®ããŠãã ããïŒ
- æå³ã®ããã»ã¬ã¯ã¿ã䜿çšããïŒã¹ã¿ã€ã«ã®ã¹ã³ãŒããæ£ç¢ºã«è¡šãã»ã¬ã¯ã¿ãéžæããŸããæå³ããªãå¯äœçšãåŒãèµ·ããå¯èœæ§ã®ãããé床ã«äžè¬çãªã»ã¬ã¯ã¿ã¯é¿ããŠãã ããã
- ã¹ã³ãŒããå°ããä¿ã€ïŒã¹ã¿ã€ã«ã®ã¹ã³ãŒããå¯èœãªéãæå°ã®é åã«éå®ããŸããããã«ãããCSSã®ä¿å®æ§ãšäºæž¬å¯èœæ§ãåäžããŸãã
- ã¹ã³ãŒãã®é床ãªãã¹ããé¿ããïŒã¹ã³ãŒãã®ãã¹ãã¯å¯èœã§ãããCSSãããè€éã§çè§£ãã«ãããªãå¯èœæ§ããããŸãããã¹ãã¯æ§ããã«ãå¿ èŠãªå Žåã«ã®ã¿äœ¿çšããŠãã ããã
- ã¹ã³ãŒããææžåããïŒå
@scope
ãããã¯ã®ç®çãšã¹ã³ãŒãã説æããããã«ãCSSã«ã³ã¡ã³ãã远å ããŸããããã«ãããä»ã®éçºè ïŒãããŠå°æ¥ã®èªåèªèº«ïŒãã³ãŒããçè§£ããã®ã«åœ¹ç«ã¡ãŸãã - 培åºçã«ãã¹ãããïŒããŸããŸãªãã©ãŠã¶ãããã€ã¹ã§CSSããã¹ãããã¹ã¿ã€ã«ãæåŸ ã©ããã«æ©èœããŠããããšã確èªããŠãã ããã
CSSã¹ã³ãŒãã³ã°ã®æªæ¥
@scope
ã®å°å
¥ã¯ãCSSã®é²åã«ãããéèŠãªäžæ©ã瀺ããŠããŸãããã©ãŠã¶ã®ãµããŒããåäžãç¶ããã«ã€ããŠã@scope
ã¯Webéçºã«ãããCSSã®è€éãã管çããã¢ãžã¥ãŒã«æ§ãä¿é²ããããã®æšæºçãªããŒã«ã«ãªãå¯èœæ§ãé«ãã§ããCSSã¯ãŒãã³ã°ã°ã«ãŒããWebã®ã¹ã¿ã€ãªã³ã°èœåãåäžãããããã®æ°ããæ¹æ³ãæ¢æ±ãç¶ããäžã§ãå°æ¥çã«ã¯@scope
ã¢ããã«ãŒã«ãžã®ãããªãæ¹è¯ãšæ¡åŒµãæåŸ
ãããŸãã
çµè«
@scope
ã¢ããã«ãŒã«ã¯ãCSSã§ã¹ã³ãŒãä»ãã¹ã¿ã€ãªã³ã°ãå®çŸ©ããããã®åŒ·åã§æè»ãªæ¹æ³ãæäŸããŸããããã¥ã¡ã³ãã®ç¹å®ã®é åå
ã«ã¹ã¿ã€ã«ãã«ãã»ã«åããããšã§ãCSSã³ãŒãã®ä¿å®æ§ãäºæž¬å¯èœæ§ãåå©çšæ§ãåäžãããããšãã§ããŸãããã©ãŠã¶ã®ãµããŒãã¯ãŸã é²åäžã§ããã@scope
ã¯ãç¹ã«ã³ã³ããŒãã³ãããŒã¹ã®ã¢ãŒããã¯ãã£ãå€§èŠæš¡ã§è€éãªã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠãçŸä»£ã®Webéçºã§æ€èšãã䟡å€ã®ããããŒã«ã§ãã@scope
ã®åãæŽ»çšããCSSã¹ã¿ã€ã«ã·ãŒãã«å¯Ÿããæ°ããªã¬ãã«ã®å¶åŸ¡ãè§£ãæŸã¡ãŸãããã
ãã®CSS @scope
ã®æ¢æ±ã¯ãäžçäžã®éçºè
ããã®æ©èœããããžã§ã¯ãã§å¹æçã«æŽ»çšã§ããããã«ãå
æ¬çãªçè§£ãæäŸããããšãç®çãšããŠããŸããæ§æãå©ç¹ãå®è·µçãªäŸãçè§£ããããšã§ã倿§ãªèæ¯ãæã€éçºè
ã¯ãèªèº«ã®CSSã¢ãŒããã¯ãã£ãæ¹åããããä¿å®æ§ãé«ãã¹ã±ãŒã©ãã«ãªWebã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã