Native Rich-Text-CSS-Namespaces
Interne XHTML-Style-Sheets unterstützen CSS-Namespace-Deklarationen und qualifizierte Element- und Attribut-Selektoren über den bestehenden nativen Rich-Text-Decoder
<body xmlns="http://www.w3.org/1999/xhtml" xmlns:meta="urn:review">
<style>
@namespace h "http://www.w3.org/1999/xhtml";
@namespace review "urn:review";
h|span[review|status="ready"] { color: #204080; font-weight: bold }
</style>
<p><span meta:status="ready">Approved</span></p>
</body>
CSS-Präfixe identifizieren Namespace-URIs unabhängig von XML-Präfixen, sodass review|status im Beispiel meta:status matcht, weil beide Präfixe zu urn:review auflösen
Präfixnamen sind case-sensitive und akzeptieren gewöhnliche CSS-Identifier-Escapes; Namespace-URI-Werte akzeptieren quoted Strings sowie quoted oder unquoted url()-Syntax
Kommentare innerhalb eines unquoted url-Tokens bleiben literale URI-Zeichen; Whitespace um den unquoted URI wird aus dem Wert ausgeschlossen
Die letzte gültige Deklaration für ein Präfix gewinnt innerhalb ihres Style-Elements; die letzte Default-Deklaration gewinnt unabhängig, und Bindings leaken nicht in ein anderes Style-Element
Deklarationen vor Style-Regeln und erkannten Nicht-Import-At-Rules platzieren; eine unbekannte, ignorierte At-Rule schließt die Deklarationsregion nicht
Qualifizierte Namen und Default-Namespaces
h|span matcht einen lokalen span-Namen im für h deklarierten URI, *|span akzeptiert jeden Namespace, und |span verlangt keinen Namespace
h|* matcht jeden Elementnamen im deklarierten URI; der Decoder konsumiert weiterhin das bestehende unterstützte XHTML-Element-Profil
Eine Default-Deklaration wie @namespace "urn:review"; beschränkt unqualifizierte Element-Selektoren und gewöhnliche Compounds mit implizitem Universal-Selektor
Ein leerer Default-URI wählt Elemente ohne Namespace; der literale URI "*" ist ein gewöhnlicher URI und unterscheidet sich vom Wildcard-Präfix in *|span
Attribut-Selektoren unterstützen deklarierte Präfixe, Wildcard-Präfixe und explizite leere Präfixe; unpräfixierte Attribute bleiben ohne Namespace, unabhängig vom Default-Element-Namespace
XML-Namespace-Deklarationen zählen nicht als gewöhnliche Attribute; die Namespace-Auflösung folgt dem Element-Scope des Attributs selbst und respektiert lokales Präfix-Shadowing, einschließlich des eingebauten xml-Präfixes
Funktionale Selektoren
Das Subject-Compound innerhalb von :is(), :where() und :not() lässt die Default-Namespace-Beschränkung weg, wenn es keinen expliziten Type- oder Universal-Selektor hat
Ein expliziter Universal-Selektor behält diese Beschränkung; frühere Ancestor-Compounds, relative :has()-Argumente und of-Filter in Positions-Selektoren behalten gewöhnliches Namespace-Matching
Ein undeklariertes CSS-Präfix invalidiert seinen Selektor; forgiving is/where-Listen können andere gültige Zweige behalten, während strikte Selektorgruppen ihre bestehenden Whole-Group-Invalidierungsregeln behalten
Gespeicherte Ausgabe und Ressourcenlimits
Berechnete Styles fließen über native Pascal, Windows-Jobs und V1-Callbacks sowie Linux-JSON- und V1-Callbacks in gespeicherte RV- und echte Widget-Appearances
Bestehende Importance-, Specificity-, Source-Ordering- und Property-Inheritance-Regeln gelten nach dem Namespace-Matching weiter
Namespace-Deklarations-Speicherung teilt MaxNodes, Namespace-Scanning teilt MaxTotalCodeUnits, und geerbtes Attribut-Namespace-Lookup belastet begrenztes Matching und Scan-Arbeit
Abbruch- und Budget-Fehler bewahren die frühere Decoder-Ausgabe und den committed Import-State; Aufrufer können mit der Original-Eingabe und normalen Limits erneut versuchen
Externe Style-Sheets, bedingte Media-Regeln, zusätzliche State-Pseudo-Classes und explizite Scoping-Roots, Tabellen und allgemeines CSS-Layout bleiben aktive Arbeiten
Native Rich-Text-Style-Sheets · Native Form-Data-Interchange