Native rich-text CSS namespaces

Interne XHTML style sheets understøtter CSS namespace-erklæringer og kvalificerede element- og attributselektorer gennem den eksisterende native rich-text-dekoder

<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æfikser identificerer namespace-URI'er uafhængigt af XML-præfikser, så review|status i eksemplet matcher meta:status, fordi begge præfikser opløses til urn:review

Præfiksenavne er case-sensitive og accepterer almindelige CSS identifikator-escapes; namespace-URI-værdier accepterer quotede strenge og quoted eller uquoted url()-syntaks

Kommentarer inde i en uquoted url-token forbliver literal URI-tegn; whitespace omkring den uquotede URI ekskluderes fra værdien

Den sidste gyldige erklæring for et præfiks vinder inden for sit style-element; den sidste default-erklæring vinder uafhængigt, og bindinger lækker ikke ind i et andet style-element

Placér erklæringer før style-regler og genkendte ikke-import at-rules; en ukendt ignoreret at-rule lukker ikke erklæringsregionen

Kvalificerede navne og default namespaces

h|span matcher et lokalt span-navn i den URI, der er deklareret for h, *|span accepterer ethvert namespace, og |span kræver intet namespace

h|* matcher ethvert elementnavn i den deklarerede URI; dekoderen fortsætter med at forbruge den eksisterende understøttede XHTML element-profil

En default-erklæring som @namespace "urn:review"; begrænser ukvalificerede elementselektorer og almindelige compounds med implicit universel selektor

En tom default-URI vælger elementer uden namespace; den literal URI "*" er en almindelig URI og er distinkt fra wildcard-præfikset i *|span

Attributselektorer understøtter deklarerede præfikser, wildcard-præfikser og eksplicit tomme præfikser; upræfiksede attributter forbliver i intet namespace uanset default element-namespace

XML namespace-erklæringer tæller ikke som almindelige attributter; namespace-opløsning følger attributtens eget element-scope og respekterer lokal præfiks-skygning, inklusive det indbyggede xml-præfiks

Funktionelle selektorer

Subjekt-compound inde i :is(), :where() og :not() udelader default namespace-begrænsningen, når den ikke har en eksplicit type- eller universel selektor

En eksplicit universel selektor beholder begrænsningen; tidligere forfader-compounds, relative :has()-argumenter og of-filtre i positionelle selektorer beholder almindelig namespace-matching

Et udeklareret CSS-præfiks invaliderer sin selektor; forgiving is/where-lister kan beholde andre gyldige grene, mens strenge selektorgrupper beholder deres eksisterende hel-gruppe-invalidationsregler

Gemt output og ressourcelgrænser

Beregnede styles føder gemt RV og rigtige widget-appearances gennem native Pascal, Windows jobs og V1 callbacks samt Linux JSON og V1 callbacks

Eksisterende important-, specificitets-, kilderækkefølge- og property-nedarvningsregler fortsætter med at gælde efter namespace-matching

Namespace-erklæringslager deler MaxNodes, namespace-scanning deler MaxTotalCodeUnits, og nedarvet attribut namespace-opslag debiterer afgrænset matching- og scan-arbejde

Cancellation- og budgetfejl bevarer tidligere dekoder-output og committed importtilstand; kaldere kan retriere med originalt input og normale grænser

Eksterne style sheets, betingede media-regler, yderligere tilstandspseudo-klasser og eksplicitte scoping-rødder, tabeller og generelt CSS-layout forbliver aktivt arbejde

Native rich-text style sheets · Native form-data interchange