CSS-namnrymder i nativ rich text
Interna XHTML-stylesheets stöder CSS-namespace-deklarationer och kvalificerade element- och attributselektorer genom den befintliga nativa rich-text-avkodaren
<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-prefix identifierar namespace-URI:er oberoende av XML-prefix, så review|status i exemplet matchar meta:status eftersom båda prefixen löses till urn:review
Prefixnamn är skriftkänsliga och accepterar vanliga CSS-identifierareskaper; namespace-URI-värden accepterar citerade strängar och citerad eller ociterad url()-syntax
Kommentarer inuti en ociterad url-token förblir litterala URI-tecken; vitt runt den ociterade URI:n undantas från värdet
Den senaste giltiga deklarationen för ett prefix vinner inom sitt style-element; den senaste standarddeklarationen vinner oberoende, och bindningar läcker inte till ett annat style-element
Placera deklarationer före stilregler och igenkända icke-import-at-regler; en okänd, ignorerad atregel stänger inte deklarationsregionen
Kvalificerade namn och standardnamnrymder
h|span matchar ett lokalt span-namn i den URI som deklarerats för h, *|span accepterar vilken namnrymd som helst, och |span kräver ingen namnrymd
h|* matchar vilket elementnamn som helst i den deklarerade URI:n; avkodaren fortsätter konsumera den befintliga stödda XHTML-elementprofilen
En standarddeklaration som @namespace "urn:review"; begränsar okvalificerade elementselektorer och vanliga sammansättningar med en implicit universiell selektor
En tom standard-URI väljer element utan namnrymd; den litterala URI:n "*" är en vanlig URI och skiljer sig från jokerprefixet i *|span
Attributselektorer stöder deklarerade prefix, jokerprefix och uttryckligt tomt prefix; oprefixade attribut ligger kvar i ingen namnrymd oavsett standardnamnrymden för element
XML-namespace-deklarationer räknas inte som vanliga attribut; namespace-lösning följer attributets eget elementomfång och respekterar lokal prefixskuggning, inklusive det inbyggda xml-prefixet
Funktionella selektorer
Ämnessammansättningen inuti :is(), :where() och :not() utelämnar standardnamnrymdsbegränsningen när den saknar uttrycklig typ- eller universalselektor
En uttrycklig universalselektor behåller den begränsningen; tidigare förfadersammansättningar, relativa :has()-argument och of-filter i positionsselektorer behåller vanlig namnrymdsmatchning
Ett odeklarerat CSS-prefix ogiltigförklarar sin selektor; förlåtande is/where-listor kan behålla andra giltiga grenar, medan strikta selektorgrupper behåller sina befintliga helgruppsogiltighetsregler
Sparad utdata och resursgränser
Beräknade stilar matar sparade RV- och faktiska widgetutseenden via nativ Pascal, Windows-jobb och V1-callbacks samt Linux JSON- och V1-callbacks
Befintliga regler för vikt, specifitet, källordning och egenskapsarv fortsätter gälla efter namnrymdsmatchning
Lagring av namespace-deklarationer delar MaxNodes, namespace-skanning delar MaxTotalCodeUnits, och ärvd attributnamnrymdsuppslagning belastar avgränsat matchnings- och skanningsarbete
Annullering och budgetfel bevarar tidigare avkodareutdata och genomfört importtillstånd; anropare kan försöka igen med originalindata och normala gränser
Externa stylesheets, villkorade mediaregler, ytterligare tillståndspseudoklasser och uttryckliga omfångsrötter, tabeller och allmän CSS-layout förblir aktivt arbete