:scope - CSS(层叠样式表) 编辑

:scope 属于 CSS 伪类,它表示作为选择器要匹配的参考点的元素。

/* Selects a scoped element */
:scope {
  background-color: lime;
}

当前,在样式表中使用时, :scope 等效于 :root,因为目前尚无一种方法来显式建立作用域元素。当从DOM API使用,如(querySelector(), querySelectorAll(), matches(), 或 Element.closest()), :scope 匹配你调用API的元素。

用法

:scope

示例

Identity match

在这个简单的示例中,我们演示了调用 Element.matches() 方法中使用 :scope 伪类来匹配调用它的元素。

JavaScript

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!";
}

HTML

<p id="para">
  This is a paragraph. It is not an interesting paragraph. Sorry about that.
</p>
<p id="output"></p>

结果

Direct children

当需要获取已检索到的的直接后代元素时,:scope 伪类很有用。

JavaScript

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

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

HTML

<div id="context">
    <div id="element-1">
        <div id="element-1.1"></div>
        <div id="element-1.2"></div>
    </div>
    <div id="element-2">
        <div id="element-2.1"></div>
    </div>
</div>
<p>
    Selected elements ids :
    <span id="results"></span>
</p>

结果

规范

规范状态备注
Selectors Level 4
:scope
Working DraftInitial definition.

浏览器兼容性

BCD tables only load in the browser

该浏览器兼容性表格由结构化数据生成。如果你愿意做出贡献,可以访问 https://github.com/mdn/browser-compat-data 和提交PR。

参考

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:68 次

字数:6168

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文