Native rich-text CSS support-queries
Den native XHTML-dekoder evaluerer @supports-grupper og supports()-importbetingelser mod sin understøttede rich text-erklærings- og selektorgrammatik
<body xmlns="http://www.w3.org/1999/xhtml">
<style><![CDATA[
@supports (font-size: calc(10pt + 5pt)) and selector(span.notice) {
span.notice { font-size: 15pt }
}
@supports not (display: grid) {
span.notice { font-weight: bold }
}
]]></style>
<p><span class="notice">Conditional text</span></p>
</body>
I den native profil gælder begge grupper og giver 15-points bold-tekst med kalderens leverede fonts
Erklærings- og selektor-admission
Erklærings-queries bruger de eksisterende admission-hjælpere til font-size, font-weight, font-style, text-decoration, color, text-align, font-family, line-height, font shorthand, letter-spacing og word-spacing
Numeriske queries deler den endelige CSS matematikprofil, default font-metrics og eksplicitte media-dimensioner; ikke-understøttede properties eller ikke-admittede værdier evalueres false
Font-family-queries kræver den konfigurerede FontFamilyNames-samling, og en utilgængelig men gyldig familie kan bruge den eksisterende leveret-familie-fallback
En gyldig !important-annotation accepteres i en erklærings-query uden at ændre den betingede gruppes kaskadeprioritet; en ekstra erklæring, afsluttende semikolon eller ugyldig prioritet afvises
selector() tjekker den eksisterende native selektorgrammatik og det aktuelle sheets namespace-erklæringer uden at matche et dokumentelement
Enhver selektorgren skal være understøttet, inklusive grene inde i normalt forgiving is()- og where()-lister; udefinerede namespace-præfikser og ukendte pseudo-klasser evalueres false
Root :scope og den statiske :hover, :active, :focus, :focus-visible og :focus-within-grammatik er understøttet. En succesfuld feature-query beskriver parser-understøttelse; brugerhandlings-selektorer matcher stadig aldrig en PDF-appearance, og funktionelle former som :hover() er ugyldige
Selektor-prober gendanner midlertidigt matcher-lager og efterlader efterfølgende stylesheet-matching intakt; deres arbejde forbruger stadig de delte node- og cancellation-budgetter
Boolesk syntaks og forwardkompatible betingelser
Betingelser accepterer not, homogene and- eller or-kæder og nestede parenteser; at blande and med or kræver eksplicit gruppering
Kommentarer og CSS identifikator-escapes følger dekoderens eksisterende tokenizer, og not skal være et nøgleord adskilt fra det følgende led snarere end en not()-funktions-token
Balancerede ukendte funktioner og parenteserede general-enclosed betingelser evalueres false, så en omsluttende not kan levere en fallback
Misdannede strenge, misdannede uquotede URL-tokens og umatchede skilletegn invaliderer den omsluttende betingelse inden negation; numeriske dimensioner og quotede funktions-tokens beholder deres distinkte token-grænser
Grupper, imports og output
Betingede grupper beholder deres faktiske kildeposition, selektorspecificitet og important-prioriteter og kan nestes med understøttede media-grupper
@import "metrics.css" supports(line-height: 18pt) print;
@import "fallback.css" supports(not selector(span:future));
En imports valgfrie supports()-betingelse følger ressource-URI'en og går forud for dens valgfrie mediebetingelse; begge skal admitte ressourcen, før den bidrager med erklæringer
Relativ URI-opløsning, cyklushåndtering, namespace-isolering og de eksisterende importrækkefølge-krav forbliver dem fra kalder-leverede style sheets
Admittede erklæringer når rigtige dekodede runs, beregnede kanoniske rich-værdier, gemte felt-appearances og default-profil rich FDF/XFDF-importer gennem samme dekoder
Grænser og accept
Betingelsesparsing og selektor-prober forbruger de eksisterende MaxNodes- og MaxTotalCodeUnits-grænser; nestede betingelser, blokke og grupper deler MaxDepth
Cancellation propagerer EHPDFOperationCancelled uden at returnere delvise runs, og mislykkede queries eller budgetter beholder frisk og genbrugt decode-genopretning
Tests/Linux/RichTextSupports/Run.py verificerer erklærings-, selektor-, Boolean- og URL-token-adfærd, nestet kaskade og imports, målt cancellation og rigtig gemt plain- og AES-krypteret PDF-output
Denne native profil tilføjer ikke browser-layout, importlag, custom properties, yderligere selektorsyntaks eller CSS betingelsesfeatures ud over de understøttede erklærings- og selektor-queries ovenfor
Betingelsessyntaksen følger understøttede dele af CSS Conditional Rules Level 3 og Level 4; den native admissionsprofil definerer, hvilke queries der lykkes