Native rich-text CSS support queries
De native XHTML-decoder evalueert @supports-groepen en supports()-importcondities tegen diens ondersteunde rich-text-declaraties en selectergrammatica
<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>
In het native profiel gelden beide groepen, wat 15-punts vette tekst oplevert met de fonts die de caller levert
Declaratie- en selectortoelating
Declaratie-queries gebruiken de bestaande toelatingshelpers voor font-size, font-weight, font-style, text-decoration, color, text-align, font-family, line-height, font shorthand, letter-spacing en word-spacing
Numerieke queries delen het eindige CSS math-profiel, default font metrics en expliciete media-dimensies; niet-ondersteunde properties of niet-toegelaten waarden evalueren naar false
Font-family-queries vragen de geconfigureerde FontFamilyNames-collectie, en een onbeschikbare maar geldige family kan de bestaande supplied-family-fallback gebruiken
Een geldige !important-annotatie wordt in een declaratie-query geaccepteerd zonder de cascade-prioriteit van de conditionele groep te veranderen; een extra declaratie, een afsluitende semicolon of een ongeldige prioriteit wordt geweigerd
selector() checkt de bestaande native selectergrammatica en de namespace-declaraties van de huidige sheet zonder een document-element te matchen
Elke selector-branch moet ondersteund zijn, inclusief branches binnen normaal vergevende is()- en where()-lijsten; ongedefinieerde namespace-prefixes en onbekende pseudo classes evalueren naar false
Root :scope en de statische :hover-, :active-, :focus-, :focus-visible- en :focus-within-grammatica worden ondersteund. Een geslaagde feature-query beschrijft parser-support; user-action-selectors matchen nog steeds nooit een PDF-appearance, en functionele vormen als :hover() zijn ongeldig
Selector-probes ruimen tijdelijke matcher-opslag op en laten daaropvolgende stylesheet-matching intact; hun werk verbruikt wel de gedeelde node- en annuleringsbudgets
Booleansyntax en forward-compatible condities
Condities accepteren not, homogene and- of or-ketens en geneste haakjes; and mengen met or vraagt expliciete groepering
Comments en CSS-identifier-escapes volgen de bestaande tokenizer van de decoder, en not moet een keyword zijn dat van de volgende term is gescheiden in plaats van een not()-functietoken
Gebalanceerde onbekende functies en tussen haakjes staande general-enclosed-condities evalueren naar false, dus een omringende not kan een fallback bieden
Misvormde strings, misvormde unquoted URL-tokens en ongebalanceerde delimiters maken de omringende conditie ongeldig vóór negatie; numerieke dimensies en quoted functietokens behouden hun eigen tokengrenzen
Groepen, imports en uitvoer
Conditionele groepen behouden hun echte bronpositie, selectorspecificity en important-prioriteiten, en kunnen nesten met ondersteunde media-groepen
@import "metrics.css" supports(line-height: 18pt) print;
@import "fallback.css" supports(not selector(span:future));
De optionele supports()-conditie van een import volgt de resource-URI en gaat vooraf aan diens optionele mediaconditie; beide moeten de resource toelaten voordat die declaraties bijdraagt
Relatieve URI-resolutie, cycle-afhandeling, namespace-isolatie en de bestaande importvolgorde-eisen blijven die van door de caller geleverde style sheets
Toegelaten declaraties bereiken echte gedecodeerde runs, computed canonieke rich-waarden, opgeslagen field-appearances en default-profiel rich FDF/XFDF-imports via dezelfde decoder
Grenzen en acceptatie
Condityparsing en selector-probes verbruiken de bestaande MaxNodes- en MaxTotalCodeUnits-limieten; geneste condities, blocks en groepen delen MaxDepth
Annulering propageert EHPDFOperationCancelled zonder partiele runs terug te geven, en gefaalde queries of budgets behouden vers- en hergebruikte decode-herstel
Tests/Linux/RichTextSupports/Run.py verifieert declaratie-, selector-, Boolean- en URL-token-gedrag, geneste cascade en imports, gemeten annulering en echte opgeslagen gewone en AES-versleutelde PDF-uitvoer
Dit native profiel voegt geen browser-layout, import layers, custom properties, aanvullende selectorsyntax of CSS conditionele features toe bovenop de hierboven ondersteunde declaratie- en selector-queries
De conditiesyntax volgt ondersteunde delen van CSS Conditional Rules Level 3 en Level 4; het native toelatingsprofiel bepaalt welke queries slagen