--- title: ':defined' slug: 'Web/CSS/:defined' tags: - CSS - Diseño - Pseudo-clase - Referencia - Web translation_of: 'Web/CSS/:defined' ---
La pseudo-clase :defined
de CSS representa cualquier elemento que se haya definido. Esto incluye cualquier elemento estándar integrado en el navegador y elementos personalizados que se hayan definido correctamente (es decir, con el método {{domxref("CustomElementRegistry.define()")}}).
/* Selecciona cualquier elemento definido */ :defined { font-style: italic; } /* Selecciona cualquier instancia de un elemento personalizado específico */ simple-custom:defined { display: block; }
Los siguientes fragmentos están tomados de nuestra demostración Pseudo-clase-definida (ver también en directo).
En esta demostración, definimos un elemento personalizado trivial muy simple:
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); } })
Luego inserta una copia de este elemento en el documento, junto con un <p>
estándar:
<simple-custom text="Texto de ejemplo del elemento personalizado"></simple-custom> <p>Texto de ejemplo de párrafo estándar</p>
En el CSS primero incluimos las siguientes reglas:
/* Dar a los dos elementos fondos distintivos */ p { background: yellow; } simple-custom { background: cyan; } /* Tanto el elemento personalizado como el incorporado tienen texto en cursiva */ :defined { font-style: italic; }
A continuación, proporcione las dos reglas siguientes para ocultar las instancias de nuestro elemento personalizado que no están definidas y las instancias que se definen como elementos de nivel de bloque:
simple-custom:not(:defined) { display: none; } simple-custom:defined { display: block; }
Esto es útil si tiene un elemento personalizado complejo que demora un tiempo en cargarse en la página — es posible que desee ocultar las instancias del elemento hasta que la definición esté completa, para que no terminen con feos destellos de elementos sin estilo en la página
Especificación | Estado | Comentario |
---|---|---|
{{ SpecName('HTML WHATWG', 'semantics-other.html#selector-defined', ':defined') }} | {{ Spec2('HTML WHATWG') }} |
{{Compat("css.selectors.defined")}}