Native rich-text CSS destek sorguları

Native XHTML decoder'ı, @supports gruplarını ve supports() import koşullarını, desteklediği rich-text bildirimleri ve selector dil bilgisine göre değerlendirir

<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>

Native profilde her iki grup da uygulanır ve çağıranın sağladığı yazı tipleriyle 15 punto kalın metin üretir

Bildirim ve selector kabulü

Bildirim sorguları, font-size, font-weight, font-style, text-decoration, color, text-align, font-family, line-height, font shorthand, letter-spacing ve word-spacing için mevcut kabul yardımcılarını kullanır

Sayısal sorgular sonlu CSS matematiği profilini, varsayılan yazı tipi metriklerini ve açık media boyutlarını paylaşır; desteklenmeyen property'ler ya da kabul edilmeyen değerler false olarak değerlendirilir

Font-family sorguları yapılandırılmış FontFamilyNames koleksiyonunu gerektirir; kullanılamayan ama geçerli bir aile mevcut sağlanan-aile yedeğini kullanabilir

Geçerli bir !important ek açıklaması, koşullu grubun cascade önceliğini değiştirmeden bir bildirim sorgusunda kabul edilir; fazladan bir bildirim, sondaki noktalı virgül ya da geçersiz öncelik reddedilir

selector(), mevcut native selector dil bilgisini ve güncel sheet'in namespace bildirimlerini, bir belge öğesiyle eşleşmeden kontrol eder

Her selector dalı desteklenmelidir; normalde affedici olan is() ve where() listelerinin içindeki dallar dâhil. Tanımsız namespace önekleri ve bilinmeyen pseudo class'lar false değerlendirilir

Kök :scope ile statik :hover, :active, :focus, :focus-visible ve :focus-within dil bilgisi desteklenir. Başarılı bir feature sorgusu ayrıştırıcı desteğini tanımlar; kullanıcı-eylemi selector'ları bir PDF appearance ile hâlâ hiç eşleşmez ve :hover() gibi fonksiyonel biçimler geçersizdir

Selector yoklamaları geçici matcher depolamasını geri yükler ve sonraki stylesheet eşleşmesini bozulmadan bırakır; işleri yine de paylaşılan node ve cancellation bütçelerini harcar

Boolean söz dizimi ve ileriye-uyumlu koşullar

Koşullar not, homojen and ya da or zincirleri ve iç içe parantezleri kabul eder; and ile or'ı karıştırmak açık gruplama gerektirir

Yorumlar ve CSS tanımlayıcı kaçışları decoder'ın mevcut tokenzier'ını izler ve not, not() fonksiyon token'ı değil, izleyen terimden ayrı bir anahtar kelime olmalıdır

Dengeli bilinmeyen fonksiyonlar ve parantezli general-enclosed koşulları false değerlendirir; böylece kapsayan not bir yedek sağlayabilir

Bozuk dizeler, bozuk tırnaksız URL token'ları ve eşleşmeyen sınırlayıcılar, olumsuzlamadan önce kapsayan koşulu geçersiz kılar; sayısal boyutlar ve tırnaklı fonksiyon token'ları kendilerine özgü token sınırlarını korur

Gruplar, importlar ve çıktı

Koşullu gruplar gerçek kaynak konumlarını, selector özgüllüklerini ve important önceliklerini korur ve desteklenen media gruplarıyla iç içe geçebilir

@import "metrics.css" supports(line-height: 18pt) print;
@import "fallback.css" supports(not selector(span:future));

Bir import'un isteğe bağlı supports() koşulu kaynak URI'sini izler ve isteğe bağlı media koşulundan önce gelir; her ikisi de bildirim katkısı öncesinde kaynağı kabul etmelidir

Göreli URI çözümlemesi, döngü yönetimi, namespace izolasyonu ve mevcut import-sırası gereksinimleri çağıranın sağladığı stylesheet'lerinkiler olmaya devam eder

Kabul edilen bildirimler, gerçek çözülmüş run'lara, hesaplanan canonical zengin değerlere, kaydedilmiş field appearance'larına ve default-profile zengin FDF/XFDF import'larına aynı decoder üzerinden ulaşır

Sınırlar ve kabul

Koşul ayrıştırma ve selector yoklamaları mevcut MaxNodes ve MaxTotalCodeUnits sınırlarını harcar; iç içe koşullar, bloklar ve gruplar MaxDepth'i paylaşır

Cancellation, kısmi run döndürmeden EHPDFOperationCancelled'ı yayılır; başarısız sorgular ya da bütçeler yeni ve yeniden kullanılan decode kurtarmasını korur

Tests/Linux/RichTextSupports/Run.py, bildirim, selector, Boolean ve URL-token davranışını, iç içe cascade ve importları, ölçülmüş cancellation'ı ve kaydedilen gerçek plain ile AES-şifreli PDF çıktısını doğrular

Bu native profil, yukarıdaki desteklenen bildirim ve selector sorgularının ötesine geçen tarayıcı layout'u, import katmanları, custom property'ler, ek selector söz dizimi ya da CSS koşullu özellikleri eklemez

Koşul söz dizimi CSS Conditional Rules Level 3 ve Level 4'ün desteklenen bölümlerini izler; hangi sorguların başarılı olduğunu native kabul profili tanımlar

Native decoder · Decode options · Media profilleri