Native rich-text style sheets
Den native XHTML-dekoder anvender interne style-elementer på rich text-felter og FDF/XFDF-importer og bevarer faktiske beregnede styles i gemt RV og indlejrede widget-appearances
<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>
Style-elementer bruger XHTML-namespacet og udelader enten type eller angiver text/css; media-attributter og nestede @media-grupper bruger den eksplicitte native print/screen-profil
Regler understøtter universelle og type-selektorer, case-sensitive klasse- og ID-navne, compound-selektorer, efterkommer-, barn-, tilstødende-søskende- og efterfølgende-søskende-kombinatorer samt kommaseparerede selektorgrupper
Namespace-selektorer
CSS namespace-erklæringer og kvalificerede selektorer understøtter navngivne og default namespace-URI'er, wildcard- eller tomme kvalifikatorer, uafhængige XML præfiks-scopes og afgrænset nedarvet attribut-opslag
Attribut- og strukturelle selektorer
Attributselektorer understøtter tilstedeværelse, lighed, whitespace-adskilte ord, bindestregs-præfikser, almindelige præfikser, suffikser og substringer: [navn], [name="værdi"], [name~="ord"], [name|="en"], [name^="pre"], [name$="slut"] og [name*="del"]
Attributværdier accepterer quotede strenge eller CSS-identifikatorer og deres escapes; det valgfrie i-flag folder kun ASCII-bogstaver, mens s og et udeladt flag sammenligner case-sensitivt
Upræfiksede attributter og [|navn] matcher attributter uden namespace-URI; [*|navn] matcher også præfiksede attributter med det lokale navn, eksklusive namespace-erklæringer
Søskende-kombinatorer springer ikke-element-noder over og bevarer forfader-matching gennem kædede selektorer
Strukturelle pseudo-klasser inkluderer :root, :empty, :first-child, :last-child, :only-child, :first-of-type, :last-of-type og :only-of-type
:scope vælger rod rich text-elementet og matcher :root, fordi denne dekoder ikke har nogen separat kalder-specificeret scoping-rod
Den statiske profil accepterer :hover, :active, :focus, :focus-visible og :focus-within som gyldige selektorer, der aldrig matcher under PDF-appearance-generering. Deres negationer og logiske eller relationale kombinationer beholder normal selektorsemantik, så p:not(:hover) kan anvende en stil, mens p:hover ikke kan
@supports selector(:hover) og ækvivalente betingede imports tester selektorgrammatik-understøttelse og evaluerer true; det skaber ikke pointer-, aktiverings- eller tastaturfokus-tilstand. Disse seks pseudo-klasser tager ingen argumenter, så former som :focus() forbliver ugyldige
De fire positionelle selektorer :nth-child(), :nth-last-child(), :nth-of-type() og :nth-last-of-type() accepterer odd, even, heltalspositioner og An+B-formler med signede decimal-koefficienter ud over maskin-heltals-intervaller, inden for det konfigurerede scan-budget
Type-positioner sammenligner både elementets lokale navn og namespace-URI; :empty-reglen følger Selectors3, så en whitespace-tekstnode gør et element ikke-tomt, mens kommentarer og processing instructions ikke gør
:lang() følger den nærmeste eksplicitte xml:lang- eller lang-værdi, matcher ASCII-insensitivt efter eksakt værdi eller bindestregs-præfiks og behandler en eksplicit tom værdi som stoppende nedarvning
Logiske og relationale selektorlister
:is() og :where() accepterer kommaseparerede komplekse selektorer, inklusive efterkommer- og søskende-kombinatorer; ikke-understøttede grene ignoreres, og en tom gyldig liste matcher intet element
:is() bruger den største argument-specificitet, inklusive gyldige argumenter, der ikke matcher det aktuelle element; :where() bidrager med nul specificitet
:not() accepterer en ikke-tom liste af komplekse selektorer og matcher, når ingen af dens argumenter matcher; et ugyldigt argument invaliderer den komplette selektorliste
:has() forankrer relative selektorer ved det aktuelle element og tester faktiske børn, efterkommere eller følgende søskende; hvert relativt argument må begynde med >, + eller ~ efterfulgt af yderligere understøttede kombinatorer
Nestet :has() og pseudo-elementer er ikke understøttet; et ugyldigt relativt argument invaliderer den komplette :has()-liste, mens en omgivende forgiving :is()- eller :where()-liste kan beholde sine andre gyldige argumenter
:not() og :has() bruger den største gyldige argument-specificitet sammenlignet efter ID-antal, klasse/attribut/pseudo-antal og type-antal
:nth-child(An+B of selector-list) og :nth-last-child(An+B of selector-list) tæller kun element-søskende, der matcher foreningen af den ikke-tomme komplekse selektorliste; targetet skal selv tilhøre den forening
Filtrerede positionelle selektorer bidrager med deres egen pseudo-klasse-specificitet plus den største filter-specificitet; of-nøgleordet accepterer CSS identifikator-escapes og kommentargrænser, mens :nth-of-type() og :nth-last-of-type() beholder deres ufiltrerede grammatik
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 }
CSS-kommentarer og identifikator-escapes parses inden matching, inklusive ét til seks hexadecimale cifre, valgfri afsluttende CSS-whitespace og supplementary Unicode-scalars; nul-, surrogate- og out of range-hexadecimale escapes opløses til U+FFFD
Erklæringer kaskaderer efter prioritet, selektorspecificitet og dokumentkilderækkefølge efterfulgt af inline styles med deres tilsvarende prioritet; elementer nedarver beregnede parent-værdier gennem de eksisterende property-specifikke regler
Alle interne style-elementer deltager, inden tekst forbruges, så et style-element, der optræder efter sit target, stadig gælder; style-tekst bliver ikke synlig felttekst
Erklæringsprofilen beholder fontstørrelse, vægt, stil og shorthand, konfigurerede familielister, farve, tekstdekorations-, justering, linjehøjde samt bogstav-/ordafstand; længdekonvertering, parent metric-strutter og leveret font-admission følger de eksisterende native rich text-API'er
Gemt RV indeholder beregnede inline styles og afhænger ikke af de originale style-elementer; gentagne ækvivalente FDF/XFDF-importer beholder eksakte committede bytes, når ingen ventende grafændringer kræver publicering
Native Pascal-consumers, Windows file jobs og originale V1-callbacks samt Linux JSON/V1-callbacks deler dekoderen; ingen public callback record-layout-ændringer er krævet
MaxTotalCodeUnits afgrænser stylesheet-scanning, udtrukket style-tekst og samlede udvidede erklæringer; MaxNodes afgrænser regelantal, selektornavne, samlede attribut/pseudo-betingelser, funktionelle selektorlister samt matching/sorterings-arbejde, inklusive relativ traversal og filtrerede sibling-scannings; MaxDepth afgrænser XML-indsamling, selektordele, nestede funktioner og rekursiv matching
Cancellation- og grænsefejl beholder dekoderens tidligere output og importtransaktionens committede dokumenttilstand; retry bruger de samme originale options og budgetter
Ugyldige eller ikke-understøttede topniveau selektorgrupper ignoreres som helhed; forgiving is/where-argumentlister beholder deres gyldige grene; ugyldige erklæringer beholder dekoderens eksisterende ignoré-adfærd, og ikke-understøttede at-rules springes over
Importlag, yderligere media-features, pseudo-elementer, yderligere tilstandspseudo-klasser og kalder-specificerede scoping-rødder, tabeller, billeder og generelt CSS-layout forbliver aktivt arbejde
Native form-data interchange · Linux rich-callbacks · Windows form-data exchange · Rich run-afstand
Kalder-leverede eksterne style sheets tilføjer linkede og rekursivt importerede CSS med ressource-URI-opløsning, mediebetingelser og valgte stylesheet-sæt
Native support-queries tillader @supports-grupper og supports()-imports med den understøttede erklærings- og selektorprofil med delte grænser og cancellation-genopretning