Folhas de estilo nativas de rich text

O descodificador nativo XHTML aplica elementos style internos a campos rich text e a importações FDF/XFDF, preservando estilos realmente calculados em RV guardado e aparências incorporadas de widgets

<body xmlns="http://www.w3.org/1999/xhtml">
  <style>
    .notice { color: #204080; font-size: 14pt }
    p > span.urgent { font-weight: bold !important }
  </style>
  <p class="notice">Review <span class="urgent">today</span></p>
</body>

Elementos style usam o namespace XHTML e omitem type ou especificam text/css; atributos media e grupos @media aninhados usam o perfil nativo explícito print/screen

As regras suportam seletores universais e de tipos, nomes de classes e de IDs sensíveis a maiúsculas e minúsculas, seletores compostos, combinadores de descendentes, filhos, irmãos adjacentes e irmãos subsequentes, e grupos de seletores separados por vírgulas

Seletores de namespaces

Declarações CSS de namespaces e seletores qualificados suportam URIs de namespaces nomeados e default, qualificadores wildcard ou vazios, âmbitos independentes de prefixos XML e consulta delimitada herdada de atributos

Seletores de atributos e estruturais

Seletores de atributos suportam presença, igualdade, palavras separadas por whitespace, prefixos de hífenes, prefixos ordinários, sufixos e substrings: [name], [name="value"], [name~="word"], [name|="en"], [name^="pre"], [name$="end"] e [name*="part"]

Valores de atributos aceitam strings entre aspas ou identificadores CSS e os escapes deles; a flag opcional i ignora maiúsculas e minúsculas apenas de letras ASCII, enquanto s e uma flag omitida comparam sensivelmente

Atributos sem prefixo e [|name] correspondem a atributos sem URI de namespace; [*|name] também corresponde a atributos com prefixo com esse nome local, excluindo declarações de namespaces

Combinadores de irmãos saltam nós que não são de elementos e preservam a correspondência de ancestrais através de seletores encadeados

As pseudo classes estruturais incluem :root, :empty, :first-child, :last-child, :only-child, :first-of-type, :last-of-type e :only-of-type

:scope seleciona o elemento raiz do rich text, correspondendo a :root, porque este descodificador não tem uma raiz de scoping separada especificada pelo caller

O perfil estático aceita :hover, :active, :focus, :focus-visible e :focus-within como seletores válidos que nunca fazem match durante a geração de aparências de PDF. As suas negações e combinações lógicas ou relacionais retêm semântica normal de seletores, por isso p:not(:hover) pode aplicar um estilo enquanto p:hover não consegue

@supports selector(:hover) e importações condicionais equivalentes testam o suporte da gramática de seletores e avaliam para true; isto não cria estado de ponteiro, ativação ou foco de teclado. Estas seis pseudo classes não recebem argumentos, por isso formas como :focus() permanecem inválidas

Os quatro seletores posicionais :nth-child(), :nth-last-child(), :nth-of-type() e :nth-last-of-type() aceitam odd, even, posições inteiras e fórmulas An+B com coeficientes decimais com sinal além dos intervalos de inteiros de máquina, dentro do orçamento configurado de varreduras

As posições de tipos comparam tanto o nome local do elemento como o URI do namespace dele; a regra :empty segue o Selectors3, pelo que um nó de texto de whitespace torna um elemento não vazio enquanto comentários e processing instructions não

:lang() segue o valor xml:lang ou lang explícito mais próximo, corresponde insensivelmente a ASCII por um valor exato ou prefixo de hífen, e trata um valor explícito vazio como parando a herança

Listas lógicas e relacionais de seletores

:is() e :where() aceitam seletores complexos separados por vírgulas, incluindo combinadores de descendentes e de irmãos; ramos não suportados são ignorados e uma lista válida vazia não corresponde a nenhum elemento

:is() usa a maior especificidade de argumentos, incluindo argumentos válidos que não correspondem ao elemento atual; :where() contribui com especificidade zero

:not() aceita uma lista não vazia de seletores complexos e corresponde quando nenhum dos argumentos dele corresponde; um argumento inválido invalida a lista completa de seletores

:has() ancora seletores relativos no elemento atual e testa filhos, descendentes ou irmãos seguintes reais; cada argumento relativo pode começar com >, + ou ~, seguido de mais combinadores suportados

:has() aninhado e pseudo elementos não são suportados; um argumento relativo inválido invalida a lista completa de :has(), enquanto uma lista indulgente envolvente de :is() ou :where() pode manter os outros argumentos válidos dela

:not() e :has() usam a maior especificidade válida de argumentos, comparada por contagem de IDs, contagem de classes/atributos/pseudo classes e contagem de tipos

:nth-child(An+B of selector-list) e :nth-last-child(An+B of selector-list) contam apenas irmãos de elementos correspondendo à união da lista não vazia de seletores complexos; o alvo tem de pertencer ele próprio a essa união

Seletores posicionais filtrados contribuem com a especificidade própria de pseudo classes deles mais a maior especificidade de filtros; a palavra-chave of aceita escapes de identificadores CSS e fronteiras de comentários, enquanto :nth-of-type() e :nth-last-of-type() mantêm a gramática não filtrada delas

p:has(> span.urgent) { color: red }
span:is(.notice, p > .urgent) { font-weight: bold }
span:nth-child(2 of .included, [data-status="ready"]) { color: blue }

Comentários CSS e escapes de identificadores são analisados antes da correspondência, incluindo um a seis dígitos hexadecimais, whitespace CSS final opcional e scalars Unicode suplementares; escapes hexadecimais zero, surrogate e fora do intervalo resolvem para U+FFFD

As declarações põem-se em cascata por importância, especificidade de seletores e ordem de fontes do documento, seguidas de estilos inline na importância correspondente deles; os elementos herdam valores calculados dos pais através das regras existentes específicas de propriedades

Todos os elementos style internos participam antes de o texto ser consumido, pelo que um elemento style que apareça depois do alvo dele ainda se aplica; o texto de estilos não se torna texto visível de campos

O perfil de declarações mantém tamanho, peso, estilo e shorthand de tipos de letra, listas configuradas de famílias, cor, decoração de texto, alinhamento, altura de linhas e espaçamento de letras/palavras; a conversão de comprimentos, os struts de métricas de pais e a admissão de tipos de letra fornecidos seguem as APIs nativas existentes de rich text

O RV guardado contém estilos inline calculados e não depende dos elementos style originais; importações FDF/XFDF equivalentes repetidas mantêm bytes confirmados exatos quando nenhuma alteração pendente do grafo exige publicação

Consumidores nativos Pascal, trabalhos de ficheiros e callbacks V1 originais de Windows, e callbacks JSON/V1 de Linux partilham o descodificador; nenhuma alteração de layouts públicos de registos de callbacks é exigida

MaxTotalCodeUnits delimita a varredura de folhas de estilos, o texto de estilos extraído e as declarações expandidas agregadas; MaxNodes delimita a contagem de regras, nomes de seletores, condições agregadas de atributos/pseudo classes, listas funcionais de seletores e trabalho de correspondência/ordenação, incluindo travessia relativa e varreduras filtradas de irmãos; MaxDepth delimita coleção XML, partes de seletores, funções aninhadas e correspondência recursiva

Cancelamento e falhas de limites retêm a saída anterior do descodificador e o estado confirmado do documento da transação de importação; a repetição usa as mesmas opções e orçamentos originais

Grupos de seletores de topo inválidos ou não suportados são ignorados como um todo; listas indulgentes de argumentos is/where mantêm os ramos válidos delas; declarações inválidas mantêm o comportamento existente do descodificador de ignorar, e at-rules não suportados são saltados

Folhas de estilo externas, mais features de media, pseudo elementos, pseudo classes adicionais de estado e de âmbito, tabelas, imagens e layout CSS geral continuam a ser trabalho ativo

Intercâmbio nativo de dados de formulários · Callbacks rich de Linux · Troca de dados de formulários em Windows · Espaçamento de runs rich

Folhas de estilo externas fornecidas pelo caller adicionam CSS linkado e importado recursivamente com resolução de URI de recursos, condições de media e conjuntos de folhas de estilo selecionados

Support queries nativas admitem grupos @supports e importações supports() usando o perfil suportado de declarações e seletores, com limites partilhados e recuperação de cancelamento