--- title: ':scope' slug: 'Web/CSS/:scope' tags: - CSS - Experimental - Layout - Pseudo-class - Reference - Scoped Elements - Web translation_of: 'Web/CSS/:scope' ---
La pseudo-class de CSS :scope
representa aquells elements que són un punt de referència per tal que els selectors coincideixin.
/* Selecciona un element d'àmbit */
:scope {
background-color: lime;
}
Actualment, quan s'utilitza en un full d'estils, :scope
és el mateix que {{cssxref(":root")}}, ja que, en aquest moment, no hi ha una manera d'establir explícitament un element amb àmbit. Quan s'utilitza des d'una API DOM com {{domxref("Element.querySelector", "querySelector()")}}, {{domxref("Element.querySelectorAll", "querySelectorAll()")}}, {{domxref("Element.matches", "matches()")}} o {{domxref("Element.closest()")}}, :scope
coincideix amb l'element que es va cridar el mètode.
{{csssyntax}}
En aquest exemple senzill, demostrem que l'ús de la pseudo-class :scope
del mètode {{domxref("Element.matches()")}} coincideix amb l'element del qual és cridat.
let paragraph = document.getElementById("para"); let output = document.getElementById("output"); if (paragraph.matches(":scope")) { output.innerText = "Yep, the element is its own scope as expected!"; }
<p id="para"> This is a paragraph. It is not an interesting paragraph. Sorry about that. </p> <p id="output"></p>
Especificació | Estat | Comentari |
---|---|---|
{{ SpecName('CSS4 Selectors', '#the-scope-pseudo', ':scope') }} | {{ Spec2('CSS4 Selectors') }} | Definició inicial. |
{{ CompatibilityTable() }}
Descripció | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Suport bàsic | {{ CompatNo }} | {{ CompatGeckoDesktop(20) }}[1] | {{CompatNo}} | 15 | 7.0 |
En querySelector() i querySelectorAll() |
{{ CompatChrome(27) }} | {{CompatGeckoDesktop(32)}}[1][2] | {{CompatNo}} | 15 | 7.0 |
Descripció | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Suport bàsic | {{ CompatNo }} | {{ CompatGeckoMobile(20) }}[1] | {{CompatNo}} | {{CompatNo}} | 7.0 |
En querySelector() i querySelectorAll() |
{{ CompatChrome(27) }} | {{CompatGeckoMobile(32)}}[1][2] | {{CompatNo}} | {{CompatNo}} | 7.0 |
[2] Firefox 20 implementa la pseudo-class :scope
, la funció està desactivada per defecte. Per habilitar la funció, estableix la preferència layout.css.scope-pseudo.enabled
a true
. A partir de Firefox 32, aquest indicador està per defecte a true
en les versions de llançament de Firefox ({{bug(528456)}}).
[3] Gecko 55 (Firefox 55) elimina el suport per a <style scoped>
però no per a la pseudo-class :scope
, que encara és compatible. <style scoped>
va fer possible configurar explícitament els àmbits de l'element, però les discussions en curs sobre el disseny d'aquesta característica, així com la manca d'altres implementacions, van donar com a resultat la decisió d'eliminar-lo.