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