:defined
Baseline 广泛可用
此功能已得到广泛应用,可以在许多设备和浏览器版本上使用。它自 2020 年 1 月.
报告反馈
:defined
CSS 伪类 表示任何已定义的元素。这包括浏览器内置的任何标准元素,以及已成功定义的自定义元素(即使用 CustomElementRegistry.define()
方法)。/* Selects any defined element */
:defined {
font-style: italic;
}
/* Selects any instance of a specific custom element */
simple-custom:defined {
display: block;
}
语法
:defined
CSS 伪类 表示任何已定义的元素。这包括浏览器内置的任何标准元素,以及已成功定义的自定义元素(即使用 CustomElementRegistry.define()
方法)。:defined {
/* ... */
}
示例
css
隐藏元素直到它们被定义
以下代码片段取自我们的 defined-pseudo-class 演示(也可以在线查看)。
在这个演示中,我们定义了一个非常简单的自定义元素
customElements.define(
"simple-custom",
class extends HTMLElement {
constructor() {
super();
let divElem = document.createElement("div");
divElem.textContent = this.getAttribute("text");
let shadowRoot = this.attachShadow({ mode: "open" }).appendChild(divElem);
}
},
);
js
然后将此元素的副本插入文档中,以及一个标准的
<p>
<simple-custom text="Custom element example text"></simple-custom>
<p>Standard paragraph example text</p>
html
:defined
CSS 伪类 表示任何已定义的元素。这包括浏览器内置的任何标准元素,以及已成功定义的自定义元素(即使用 CustomElementRegistry.define()
方法)。/* Give the two elements distinctive backgrounds */
p {
background: yellow;
}
simple-custom {
background: cyan;
}
/* Both the custom and the built-in element are given italic text */
:defined {
font-style: italic;
}
在 CSS 中,我们首先包含以下规则
:defined
CSS 伪类 表示任何已定义的元素。这包括浏览器内置的任何标准元素,以及已成功定义的自定义元素(即使用 CustomElementRegistry.define()
方法)。simple-custom:not(:defined) {
display: none;
}
simple-custom:defined {
display: block;
}
然后提供以下两个规则来隐藏任何未定义的自定义元素实例,并将定义的实例显示为块级元素
规范
如果您有一个复杂的自定义元素,加载到页面中需要一段时间 - 您可能希望隐藏元素的实例,直到定义完成,这样您就不会在页面上出现丑陋的未样式元素的闪烁 |
---|
规范 # HTML 标准 |
浏览器兼容性
selector-defined