: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 Draft | Initial definition. |
浏览器兼容性
BCD tables only load in the browser
该浏览器兼容性表格由结构化数据生成。如果你愿意做出贡献,可以访问 https://github.com/mdn/browser-compat-data 和提交PR。参考
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论