Native rich-text media query'leri

Native XHTML decoder'ı, desteklenen bildirimleri gerçek rich-text run'larına cascade etmeden önce bir style öğesinin media attribute'ını ve iç içe @media gruplarını değerlendirir

Media değerlendirmesi açık bir native host profili kullanır; masaüstüne, tarayıcıya ya da görüntü cihazına bakmaz

Options := THPDFHeadlessRichTextDecodeOptions.Default;
Options.MediaType := hrmtScreen;
SetLength(Options.MediaFeatures, 2);
Options.MediaFeatures[0].Name := 'width';
Options.MediaFeatures[0].Value := '800px';
Options.MediaFeatures[1].Name := 'resolution';
Options.MediaFeatures[1].Value := '2dppx';
Runs := HPDFDecodeHeadlessRichText(XHTML, Options);
<style media="screen and (width >= 600px)">
  @media (resolution >= 2dppx) {
    span.notice { font-size: 14pt }
  }
</style>

Koşullar ve cascade

Query'ler all, print ve screen media türlerini, only ve not değiştiricilerini, virgülle ayrılmış alternatifleri ve parantezli not, and ve or koşullarını destekler

Sayısal feature'lar iki nokta eşitliğini, min-/max- biçimlerini ve =, <, <=, > ve >= ile ileri, ters ya da zincirlenmiş aralık karşılaştırmalarını kabul eder

İç içe gruplar kaynak sırasını, bildirim importance'ını, selector özgüllüğünü ve kalıtsal namespace bildirimlerini korur; bir style media attribute'ı ve onu saran tüm media grupları eşleşmelidir

CSS tanımlayıcı kaçışları, yorumlar, üslü gösterim ve dengeli fonksiyon token'ları aynı sınırlı ayrıştırıcı içinde taranır

Bilinmeyen feature'lar, desteklenmeyen değerler ve general-enclosed koşullar olumsuzlama ve Boolean değerlendirme boyunca bilinmeyen bir doğruluk değeri korur; yalnızca son true bir query bildirimlerini etkinleştirir

Gelecekteki bir feature için host girişi sağlamak, o feature'ı desteklenen query sözlüğünün parçası yapmaz

Host profili

Desteklenen sayısal feature'lar width, height, device-width, device-height, resolution, aspect-ratio, device-aspect-ratio, color, color-index, monochrome ve grid'dir

Ayrık feature'lar orientation, scan, update, overflow-block, overflow-inline, color-gamut, pointer, any-pointer, hover ve any-hover'dır

Uzunluk birimleri pt, px, in, pc, cm, mm, q, em ve rem'dir; çözünürlük birimleri dpi, dpcm, dppx ve x'tir, oranlar eğik çizgi gösterimini kullanır

Media em ve rem'i, kademeli bir öğe yazı tipi boyutu yerine MediaInitialFontSize'u kullanır; varsayılanı 12 puntodur ve sıfır, sıfırla başlatılmış legacy kayıtlar için aynı 12 punto başlangıç değerini korur

Atlanan orientation ya da aspect-ratio, verilen width ve height'tan türetilebilir; sıfır height oranı bilinmeden bırakır, eşit width ve height ise dikey (portrait) orientation kullanır

any-pointer hem coarse hem fine içerebilir; none başka bir pointer değeriyle birleştirilemez ve color-gamut, desteklenen alt gamut ranglarını içerir

Varsayılan medium print'tir; 8 renk biti, indeksli ya da monokrom renk yok, grid 0 ve sRGB gamut ile. Update, overflow-inline, pointer, hover ve scan yetenekleri yoktur ve overflow-block sayfalamalıdır (paged)

Boyutlar ve çözünürlük için uydurulmuş cihaz varsayılanları yoktur; paylaşılan renk varsayılanları dışındaki screen yetenekleri ilgili olduğunda açık bir host değeri gerektirir

MediaFeatures, her biri 1-64 ASCII harf, rakam ya da tire isimli ve 1-256 UTF-16 code unit değerli en fazla 32 ayrı ASCII-duyarsız ad kabul eder; tanınan girişler geçerli negatif-olmayan sayısal ya da desteklenen ayrık bir değer kullanmalıdır

MediaInitialFontSize sonlu ve ya sıfır ya da 0.000001 ile 1000000 punto arasında olmalıdır; geçersiz host profilleri run'lar döndürülmeden önce EHPDFHeadlessRichTextCodecError raised eder

Açık tercihler ve erişilebilirlik

Tercihleri MediaFeatures girişleri olarak sağlayın; bunlar çağıranın rendering ortamını tanımlar ve işletim sistemine, tarayıcıya ya da etkin masaüstüne bakmaz

FeatureKabul edilen değerlerFalse Boolean değeri
prefers-color-schemelight, darkİkisi de değil
prefers-reduced-motionno-preference, reduceno-preference
prefers-reduced-transparencyno-preference, reduceno-preference
prefers-contrastno-preference, less, more, customno-preference
prefers-reduced-datano-preference, reduceno-preference
forced-colorsnone, activenone
inverted-colorsnone, invertednone
scriptingnone, initial-only, enablednone
Options := THPDFHeadlessRichTextDecodeOptions.Default;
Options.MediaType := hrmtScreen;
SetLength(Options.MediaFeatures, 2);
Options.MediaFeatures[0].Name := 'prefers-color-scheme';
Options.MediaFeatures[0].Value := 'dark';
Options.MediaFeatures[1].Name := 'prefers-contrast';
Options.MediaFeatures[1].Value := 'more';
Runs := HPDFDecodeHeadlessRichText(XHTML, Options);
@media (prefers-color-scheme: dark) and (prefers-contrast: more) {
  span.notice { font-size: 20pt; font-weight: bold }
}

Sekiz feature'ın tamamı ayrıktır: eşitlik ya da Boolean koşulu kullanın, min-/max- ya da sıralı aralık karşılaştırmaları kullanmayın

Light, Boolean bir query'de etkin bir color-scheme değeridir; less ya da custom etkin bir contrast tercihidir ve custom, more'u ima etmez

Atlanan bir tercih, not altında dâhil, hem print hem screen için bilinmeden kalır; decoder no-preference, light, none ya da başka bir yedek değer uydurmaz

Tanınan host feature'ları için geçersiz değerler, run'lar döndürülmeden önce profili reddeder; CSS tanımlayıcı kaçışları ve yorumlar, girdi sonuna kadar tüketilen yorumlar dâhil mevcut sınırlı tokenzier'ı kullanır

Scripting feature'ı yalnızca çağıranın sağladığı erişilebilirliği tanımlar; query'yi değerlendirmek JavaScript çalıştırmaz

Style media attribute'ları, iç içe gruplar ve çağıranın sağladığı dış sheet'ler bu feature semantiğini ve mevcut cascade kurallarını paylaşır

Kaydedilen belgeler ve sınırlar

Native çağıranlar THPDFHeadlessRichTextDecodeOptions üzerinden özel bir host profili yapılandırabilir ve onu doğrudan HPDFDecodeHeadlessRichText'e geçirebilir

Hesaplanan run'lar seçilen stilleri kaydedilen RV'de ve gömülü appearance'larda korur; sıradan FDF/XFDF import'ları varsayılan print profilini kullanır

Media token'ları, iç içe gruplar, host-değer ayrıştırma ve eşleşme, mevcut stylesheet ayrıştırıcısıyla MaxNodes, MaxTotalCodeUnits, MaxDepth ve cancellation muhasebesini paylaşır

Başarısız çözme kısmi run yayınlamaz ve başarısız importlar çevreleyen işlemin önceki belge durumunu korur

Import katmanları ve supports koşulları, calc ve viewport birimleri, başka media feature'ları ve genel CSS layout'u ayrı iş olarak kalır

Inline stylesheet'ler · Native options

Dış link ve import koşulları aynı media değerlendiricisini kullanır