:defined
åºçº¿
广æ³å¯ç¨
èª 2020å¹´1æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
:defined CSS 伪类 表示任ä½å·²å®ä¹çå
ç´ ãè¿å
æ¬ä»»ä½æµè§å¨å
ç½®çæ åå
ç´ ä»¥åå·²æåå®ä¹çèªå®ä¹å
ç´ (ä¾å¦éè¿ CustomElementRegistry.define() æ¹æ³)ã
/* éæ©ææå·²å®ä¹çå
ç´ */
:defined {
font-style: italic;
}
/* éæ©æå®èªå®ä¹å
ç´ çä»»ä½å®ä¾ */
simple-custom:defined {
display: block;
}
è¯æ³
Error: could not find syntax for this item示ä¾
ä¸é¢ççæ®µæèªæä»¬ç å®ä¹ä¼ªç±» demo (ç¹å»æ¥çæºç ).
å¨è¿ä¸ª demo 䏿们å®ä¹äºä¸ä¸ªé常ç®åçèªå®ä¹å ç´ ï¼
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);
}
},
);
ç¶åå¨ææ¡£ä¸æå
¥ä¸ä¸ªè¯¥å
ç´ ç坿¬ï¼ä»¥åä¸ä¸ªæ åç <p> æ ç¾ï¼
<simple-custom text="Custom element example text"></simple-custom>
<p>Standard paragraph example text</p>
å¨ CSS 䏿们é¦å å å«ä»¥ä¸è§åï¼
// 为两个å
ç´ è®¾ç½®ä¸åçèæ¯è²
p {
background: yellow;
}
simple-custom {
background: cyan;
}
// å°èªå®ä¹å
ç´ åå
ç½®å
ç´ çåä½é½è®¾ä¸ºæä½
:defined {
font-style: italic;
}
ç¶åæä¾ä»¥ä¸ä¸¤ä¸ªè§åæ¥éèæªå®ä¹çèªå®ä¹å ç´ çææå®ä¾ï¼å¹¶æ¾ç¤ºè¢«å®ä¹ä¸ºå级å ç´ çå®ä¾ï¼
simple-custom:not(:defined) {
display: none;
}
simple-custom:defined {
display: block;
}
è¿å¨ä½ æä¸ä¸ªå¤æçèªå®ä¹å ç´ éè¦ä¸æ®µæ¶é´æè½å è½½å°é¡µé¢ä¸æ¶é常æç¨ââä½ å¯è½æ³è¦éèå ç´ çå®ä¾ç´å°å®ä¹å®æä¸ºæ¢ï¼è¿æ ·ä½ å°±ä¸ä¼å¨é¡µé¢ä¸åºç°ä¸äºé¾ççå ç´ ã
è§è
| è§è |
|---|
| HTML> # selector-defined> |
| Selectors Level 4> # defined-pseudo> |