JINMUSOFTWARE

CSSの:scopeとは

セレクタ―が作用する基点を示す

:scopeとは

セレクタ―が作用する基点の代理のシンボルのようなもの。

要素のscopeを定義する方法がまだ無いようなので、css上の使用では、:rootと同じです。

しかし、JavaScript上で使用した場合は、querySelector()等を発行する要素自体を示します。

セレクタ―の文字列として、:scope を使用できます。

var context = document.getElementById('context');
var selected = context.querySelectorAll(':scope > div');

Sample.

element.matches(selector)…要素がセレクタ―にマッチするか。

element.matches(“:scope”)…私は私ですかと確認しているような感じでしょうか。

if (ele.matches(":scope")) {
    result = ":scopeです。この要素は自分自身のスコープ内にあります";
}

Memo.JavaScript.

mdnのJavaScriptの例がJavaScriptの参考になるなと思いました。

var context = document.getElementById('context');
var selected = context.querySelectorAll(':scope > div');

document.getElementById('results').innerHTML = Array.prototype
  .map.call(selected, function (e) { return '#' + e.getAttribute('id');})
  .join(', ');

id=context直下のdivを検索して、そのdivのid名の頭に#を付けて、出力する。

.map.call()は、配列で出力するための記述のようです。