Fogli di stile del rich text nativo
Il decoder XHTML nativo applica gli elementi style interni ai campi di rich text e agli import FDF/XFDF, preservando gli stili calcolati effettivi nell'RV salvato e nelle appearance incorporate dei widget
<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>
Gli elementi style usano il namespace XHTML e omettono type oppure specificano text/css; gli attributi media e i gruppi @media annidati usano il profilo nativo esplicito print/screen
Le regole supportano selettori universali e di tipo, nomi di classi e ID sensibili alle maiuscole, selettori composti, combinatori discendente, figlio, fratello adiacente e fratello successivo, e gruppi di selettori separati da virgole
Selettori di namespace
Le dichiarazioni di namespace CSS e i selettori qualificati supportano URI di namespace denominati e default, qualificatori jolly o vuoti, ambiti indipendenti dei prefissi XML e ricerca limitata degli attributi ereditati
Selettori di attributo e strutturali
I selettori di attributo supportano presenza, uguaglianza, parole separate da spazio, prefissi con trattino, prefissi ordinari, suffissi e sottostringhe: [name], [name="value"], [name~="word"], [name|="en"], [name^="pre"], [name$="end"] e [name*="part"]
I valori degli attributi accettano stringhe tra virgolette o identificatori CSS e i loro escape; il flag opzionale i comprime solo lettere ASCII, mentre s e un flag omesso confrontano distinguendo le maiuscole
Gli attributi senza prefisso e [|name] corrispondono ad attributi senza URI di namespace; [*|name] corrisponde anche ad attributi con prefisso che abbiano quel nome locale, escludendo le dichiarazioni di namespace
I combinatori di fratelli saltano i nodi che non sono elementi e conservano il matching degli antenati attraverso selettori concatenati
Le pseudo classi strutturali includono :root, :empty, :first-child, :last-child, :only-child, :first-of-type, :last-of-type e :only-of-type
:scope seleziona l'elemento radice del rich text, corrispondendo a :root perché questo decoder non ha una radice di scoping separata specificata dal caller
Il profilo statico accetta :hover, :active, :focus, :focus-visible e :focus-within come selettori validi che non corrispondono mai durante la generazione delle appearance PDF. Le loro negazioni e le combinazioni logiche o relazionali conservano la semantica normale dei selettori, così p:not(:hover) può applicare uno stile mentre p:hover non può
@supports selector(:hover) e gli import condizionali equivalenti verificano il supporto della grammatica dei selettori e valutano a true; questo non crea stato di puntatore, attivazione o focus da tastiera. Queste sei pseudo classi non prendono argomenti, quindi forme come :focus() restano non valide
I quattro selettori posizionali :nth-child(), :nth-last-child(), :nth-of-type() e :nth-last-of-type() accettano odd, even, posizioni intere e formule An+B con coefficienti decimali con segno oltre gli intervalli degli interi macchina, entro il budget di scansione configurato
Le posizioni di tipo confrontano sia il nome locale dell'elemento sia l'URI del namespace; la regola :empty segue Selectors3, così un nodo di testo di soli spazi rende l'elemento non vuoto mentre i commenti e le istruzioni di elaborazione no
:lang() segue il valore xml:lang o lang esplicito più vicino, corrisponde insensibilmente ad ASCII per valore esatto o prefisso con trattino, e tratta un valore esplicito vuoto come arresto dell'ereditarietà
Liste di selettori logiche e relazionali
:is() e :where() accettano selettori complessi separati da virgole, inclusi i combinatori discendente e fratello; le diramazioni non supportate vengono ignorate e una lista valida vuota non corrisponde ad alcun elemento
:is() usa la massima specificità degli argomenti, inclusi argomenti validi che non corrispondono all'elemento corrente; :where() contribuisce specificità zero
:not() accetta una lista non vuota di selettori complessi e corrisponde quando nessuno dei suoi argomenti corrisponde; un argomento non valido invalida l'intera lista di selettori
:has() ancora i selettori relativi all'elemento corrente e verifica figli effettivi, discendenti o fratelli seguenti; ogni argomento relativo può iniziare con >, + o ~, seguito da altri combinatori supportati
:has() annidato e pseudo elementi non sono supportati; un argomento relativo non valido invalida l'intera lista di :has(), mentre una lista tollerante circostante di :is() o :where() può conservare i suoi altri argomenti validi
:not() e :has() usano la massima specificità degli argomenti validi, confrontata per conteggio di ID, conteggio di classi/attributi/pseudo e conteggio di tipi
:nth-child(An+B of selector-list) e :nth-last-child(An+B of selector-list) contano solo i fratelli elementi corrispondenti all'unione della lista non vuota di selettori complessi; il bersaglio stesso deve appartenere a quell'unione
I selettori posizionali filtrati contribuiscono la propria specificità di pseudo-classe più la massima specificità del filtro; la keyword of accetta escape degli identificatori CSS e confini di commenti, mentre :nth-of-type() e :nth-last-of-type() conservano la loro grammatica non filtrata
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 }
Commenti CSS ed escape degli identificatori vengono analizzati prima del matching, inclusi da una a sei cifre esadecimali, spazio bianco CSS finale opzionale e scalari Unicode supplementari; gli escape esadecimali zero, surrogati e fuori intervallo si risolvono in U+FFFD
Le dichiarazioni vanno in cascata per importance, specificità del selettore e ordine sorgente nel documento, seguite dagli stili inline alla loro importance corrispondente; gli elementi ereditano i valori calcolati del genitore attraverso le regole esistenti specifiche per proprietà
Tutti gli elementi style interni partecipano prima che il testo venga consumato, così un elemento style che appare dopo il suo bersaglio si applica comunque; il testo di stile non diventa testo visibile del campo
Il profilo delle dichiarazioni conserva dimensione, peso, stile e shorthand dei font, liste di famiglie configurate, colore, decorazione del testo, allineamento, altezza di riga e letter/word spacing; conversione delle lunghezze, struts delle metriche del genitore e ammissione dei font forniti seguono le esistenti API di rich text nativo
L'RV salvato contiene stili inline calcolati e non dipende dagli elementi style originali; gli import FDF/XFDF equivalenti ripetuti conservano byte confermati esatti quando non ci sono modifiche al grafo in sospeso da pubblicare
I consumer Pascal nativi, i file job Windows e i callback V1 originali, e i callback Linux JSON/V1 condividono il decoder; non sono richieste modifiche ai layout pubblici dei record callback
MaxTotalCodeUnits limita la scansione del foglio di stile, il testo di stile estratto e le dichiarazioni espanse aggregate; MaxNodes limita il conteggio delle regole, i nomi dei selettori, le condizioni aggregate di attributi/pseudo, le liste di selettori funzionali e il lavoro di matching/ordinamento, inclusi l'attraversamento relativo e le scansioni filtrate dei fratelli; MaxDepth limita la raccolta XML, le parti dei selettori, le funzioni annidate e il matching ricorsivo
Cancellazione e fallimenti per limite conservano l'output precedente del decoder e lo stato di documento confermato della transazione di import; il tentativo usa le stesse opzioni e budget originali
I gruppi di selettori di primo livello non validi o non supportati vengono ignorati nel loro insieme; le liste tolleranti di argomenti is/where conservano le loro diramazioni valide; le dichiarazioni non valide conservano l'esistente comportamento di ignore del decoder, e gli at-rule non supportati vengono saltati
Livelli di import, ulteriori feature media, pseudo elementi, pseudo classi di stato aggiuntive e radici di scoping specificate dal caller, tabelle, immagini e layout CSS generale restano lavoro attivo
Scambio nativo di dati modulo · Callback rich di Linux · Scambio dei dati modulo Windows · Spaziatura dei rich run
I fogli di stile esterni forniti dal caller aggiungono CSS collegato e importato ricorsivamente con risoluzione degli URI di risorse, condizioni media e insiemi di stylesheet selezionati
Le query di supporto native ammettono gruppi @supports e import supports() usando il profilo di dichiarazioni e selettori supportato, con limiti condivisi e recupero della cancellazione