Namespaces CSS de rich text nativo
Los style sheets XHTML internos soportan declaraciones de namespace CSS y selectores de elementos y atributos calificados a través del decoder nativo de rich text existente
<body xmlns="http://www.w3.org/1999/xhtml" xmlns:meta="urn:review">
<style>
@namespace h "http://www.w3.org/1999/xhtml";
@namespace review "urn:review";
h|span[review|status="ready"] { color: #204080; font-weight: bold }
</style>
<p><span meta:status="ready">Approved</span></p>
</body>
Los prefijos CSS identifican URIs de namespace independientemente de los prefijos XML, así que review|status en el ejemplo coincide con meta:status porque ambos prefijos resuelven a urn:review
Los nombres de prefijo distinguen mayúsculas y aceptan escapes ordinarios de identificadores CSS; los valores de URI de namespace aceptan cadenas entre comillas y sintaxis url() entre comillas o sin comillas
Los comentarios dentro de un token url sin comillas siguen siendo caracteres literales del URI; el espacio en blanco alrededor del URI sin comillas se excluye del valor
La última declaración válida de un prefijo gana dentro de su elemento style; la última declaración default gana independientemente, y los bindings no se filtran a otro elemento style
Coloque las declaraciones antes de las reglas de estilo y de los at-rules reconocidos que no son import; un at-rule desconocido ignorado no cierra la región de declaraciones
Nombres calificados y namespaces default
h|span coincide con un nombre local span en el URI declarado para h, *|span acepta cualquier namespace, y |span exige ausencia de namespace
h|* coincide con cualquier nombre de elemento en el URI declarado; el decoder sigue consumiendo el perfil existente de elementos XHTML soportados
Una declaración default como @namespace "urn:review"; restringe los selectores de elementos no calificados y los compuestos ordinarios con un universal selector implícito
Un URI default vacío selecciona elementos sin namespace; el URI literal "*" es un URI ordinario y se distingue del prefijo comodín de *|span
Los selectores de atributos soportan prefijos declarados, prefijos comodín y prefijos vacíos explícitos; los atributos sin prefijo permanecen sin namespace independientemente del namespace de elemento default
Las declaraciones de namespace XML no cuentan como atributos ordinarios; la resolución de namespaces sigue el ámbito del propio elemento del atributo y respeta el sombreado local de prefijos, incluido el prefijo xml incorporado
Selectores funcionales
El compuesto sujeto dentro de :is(), :where() y :not() omite la restricción de namespace default cuando no tiene type ni universal selector explícito
Un universal selector explícito retiene esa restricción; los compuestos ancestros previos, los argumentos relativos de :has() y los filtros of en selectores posicionales retienen el matching de namespaces ordinario
Un prefijo CSS no declarado invalida su selector; las listas tolerantes is/where pueden retener otras ramas válidas, mientras que los grupos de selectores estrictos retienen sus reglas existentes de invalidación del grupo completo
Salida guardada y límites de recursos
Los estilos computados alimentan el RV guardado y las apariencias reales de widgets a través de callbacks Pascal nativos, jobs Windows y V1, y callbacks Linux JSON y V1
Las reglas existentes de importance, especificidad, orden de fuente y herencia de propiedades siguen aplicándose después del matching de namespaces
El almacenamiento de declaraciones de namespace comparte MaxNodes, el escaneo de namespaces comparte MaxTotalCodeUnits, y la búsqueda heredada de namespaces de atributos cobra trabajo de matching y escaneo acotado
La cancelación y las fallas de presupuesto preservan la salida previa del decoder y el estado de import confirmado; los callers pueden reintentar con la entrada original y los límites normales
Los style sheets externos, las reglas media condicionales, pseudo clases de estado adicionales y raíces de scoping explícitas, tablas y layout CSS general siguen siendo trabajo activo
Style sheets de rich text nativo · Intercambio de form-data nativo