Ce face @scope (stiluri limitate la o zonă)
@scope (rădăcină) face ca selectorii din bloc să se aplice doar elementelor din interiorul rădăcinii. În loc de .card .titlu, .card img etc., scrii o dată @scope (.card) și apoi selectori simpli. În bloc, :scope înseamnă chiar elementul rădăcină.
Cu to (limită) oprești stilurile la o anumită zonă: @scope (.articol) to (.comentarii) stilizează articolul, dar nu și comentariile din el. Este ca o „gaură” în zonă.
Când două zone se suprapun și regulile au aceeași specificitate, câștigă regula din zona mai apropiată de element (proximitate), nu cea scrisă mai jos în fișier. Suport: Chrome 118+, Firefox 146+, Safari 17.4+; pentru alte browsere scrie stiluri de bază în afara lui @scope.
Valori uzuale
| Valoare | Descriere |
|---|---|
@scope (selector) |
Rădăcina zonei: regulile se aplică doar în interiorul ei. |
to (selector) |
Limita: elementele din interiorul ei nu mai sunt stilizate. |
:scope |
În bloc, chiar elementul rădăcină. |
@scope { ... } fără selector |
Pus într-un <style> din HTML, zona este elementul părinte al acelui <style>. |
Exemple
Exemplul 1: Stiluri pentru un card de produs, fără selectori lungi
Regulile pentru img și p nu afectează imaginile și paragrafele din restul paginii.
@scope (.card-produs) {
:scope {
border: 1px solid #e5e7eb;
border-radius: 12px;
padding: 16px;
}
img {
width: 100%;
border-radius: 8px;
}
p {
color: #475569;
font-size: 0.9rem;
}
}
Efect vizual în browser
Cardul „Miere de salcâm 500 g – 35 lei” are chenar rotunjit, poza cu colțuri rotunjite și descrierea gri, mai mică. Paragrafele din articolul de deasupra rămân negre, la mărimea normală.
Exemplul 2: Linkuri stilizate în articol, dar nu și în secțiunea de comentarii
Limita to (.comentarii) exclude comentariile, chiar dacă sunt în interiorul articolului.
@scope (.articol) to (.comentarii) {
a {
color: #2563eb;
text-decoration-thickness: 2px;
}
}
Efect vizual în browser
Linkurile din textul articolului „Trasee de drumeție lângă Cluj” sunt albastre cu subliniere groasă, iar linkurile din comentariile de la final păstrează stilul implicit al site-ului.
Greșeli frecvente
- Așteptarea ca @scope să crească specificitatea; selectorii din bloc își păstrează specificitatea normală, iar :scope are specificitatea unei pseudo-clase.
- Confuzia cu Shadow DOM; @scope nu izolează stilurile din exterior, regulile globale se aplică în continuare în interiorul zonei.
Comenzi înrudite
Combinatori CSS (descendent, copil >, frate +, ~): Exprimă relația structurală dintre două elemente: descendență, copil direct sau elemente surori în DOM.Selectori de bază (element, clasă, id): Mecanismul prin care CSS identifică elementele din HTML cărora le aplică stilurile.