Namespaces CSS de rich text nativo

Las style sheets XHTML internas soportan declaraciones de namespace CSS y selectores de elementos y atributos cualificados a través del decodificador 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 de forma independiente de los prefijos XML, así que review|status del ejemplo empareja meta:status porque ambos prefijos resuelven a urn:review

Los nombres de prefijo distinguen mayúsculas/minúsculas y aceptan escapes ordinarios de identificadores CSS; los valores de URI de namespace aceptan strings entre comillas y sintaxis url() entre comillas o sin ellas

Los comentarios dentro de un token url sin comillas permanecen como caracteres literales del URI; el whitespace que rodea al URI sin comillas queda excluido del valor

La última declaración válida de un prefijo gana dentro de su style element; la última declaración por defecto gana de forma independiente, y los enlaces no se filtran a otro style element

Coloque las declaraciones antes de las reglas de estilo y de los at-rules reconocidos que no sean import; un at-rule desconocido e ignorado no cierra la región de declaraciones

Nombres cualificados y namespaces por defecto

h|span empareja un nombre local span en el URI declarado para h, *|span acepta cualquier namespace, y |span exige que no haya namespace

h|* empareja cualquier nombre de elemento en el URI declarado; el decodificador sigue consumiendo el perfil de elementos XHTML soportado existente

Una declaración por defecto como @namespace "urn:review"; restringe los selectores de elementos sin cualificar y los compuestos ordinarios con selector universal implícito

Un URI por defecto vacío selecciona elementos sin namespace; el URI literal "*" es un URI ordinario y es distinto 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 sin importar el namespace de elementos por defecto

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 shadowing 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 por defecto cuando carece de selector de tipo o universal explícito

Un selector universal explícito retiene esa restricción; los compuestos de ancestros previos, los argumentos relativos de :has() y los filtros of en selectores posicionales retienen el emparejamiento ordinario de namespaces

Un prefijo CSS no declarado invalida su selector; las listas forgiving is/where pueden retener otras ramas válidas, mientras que los grupos de selectores estrictos retienen sus reglas existentes de invalidación de todo el grupo

Salida guardada y límites de recursos

Los estilos calculados alimentan el RV guardado y las appearances reales de widgets a través de Pascal nativo, jobs de Windows y callbacks V1, y callbacks JSON y V1 de Linux

Las reglas existentes de importancia, especificidad, orden de fuente y herencia de propiedades siguen aplicándose tras el emparejamiento de namespaces

El almacenamiento de declaraciones de namespace comparte MaxNodes, el escaneo de namespaces comparte MaxTotalCodeUnits, y la búsqueda de namespaces de atributos heredados cobra trabajo acotado de emparejamiento y escaneo

La cancelación y los fallos de presupuesto preservan la salida previa del decodificador y el estado de importación confirmado; los llamadores pueden reintentar con la entrada original y los límites normales

Las style sheets externas, las reglas de medios condicionales, las pseudo classes de estado adicionales y las scoping roots explícitas, las tablas y el layout CSS general siguen siendo trabajo activo

Style sheets de rich text nativo · Intercambio nativo de form data