ネイティブリッチテキストのスタイルシート
ネイティブ XHTML デコーダは、内部 style 要素をリッチテキストフィールドと FDF/XFDF インポートに適用し、実際に計算されたスタイルを保存された RV と埋め込みウィジェット外観に保持します
<body xmlns="http://www.w3.org/1999/xhtml">
<style>
.notice { color: #204080; font-size: 14pt }
p > span.urgent { font-weight: bold !important }
</style>
<p class="notice">Review <span class="urgent">today</span></p>
</body>
style 要素は XHTML 名前空間を使い、type を省略するか text/css を指定します。media 属性とネストした @media グループは、明示的なネイティブ print/screen プロファイルを使います
ルールは、ユニバーサル・タイプセレクタ、大文字小文字区別の class・ID 名、複合セレクタ、子孫・子・隣接兄弟・後続兄弟コンビネータ、カンマ区切りのセレクタグループをサポートします
名前空間セレクタ
CSS 名前空間宣言と修飾セレクタは、名前付き・デフォルト名前空間 URI、ワイルドカード・空の修飾子、独立した XML 接頭辞スコープ、上限付きの継承属性検索をサポートします
属性セレクタと構造疑似クラス
属性セレクタは、存在、等価、空白区切り単語、ハイフン接頭辞、通常の接頭辞、接尾辞、部分文字列をサポートします: [name]、[name="value"]、[name~="word"]、[name|="en"]、[name^="pre"]、[name$="end"]、[name*="part"]
属性値は引用符付き文字列か CSS 識別子とそのエスケープを受け付けます。オプションの i フラグは ASCII 英字だけを折りたたみ、s と省略されたフラグは大文字小文字を区別して比較します
接頭辞なし属性と [|name] は、名前空間 URI のない属性に一致します。[*|name] は、名前空間宣言を除き、そのローカル名を持つ接頭辞付き属性にも一致します
兄弟コンビネータは要素でないノードをスキップし、連鎖セレクタを通じて祖先マッチングを保持します
構造疑似クラスには :root、:empty、:first-child、:last-child、:only-child、:first-of-type、:last-of-type、:only-of-type があります
:scope はルートのリッチテキスト要素を選択し、:root に一致します。このデコーダには、呼び出し側が指定する別のスコープルートがないからです
静的プロファイルは :hover、:active、:focus、:focus-visible、:focus-within を、PDF 外観生成の間に決して一致しない有効なセレクタとして受け付けます。その否定と論理・関係の組み合わせは通常のセレクタ意味論を保持するため、p:not(:hover) はスタイルを適用でき、p:hover はできません
@supports selector(:hover) と等価な条件付きインポートはセレクタ文法のサポートを検査し true と評価します。これはポインタ、アクティベーション、キーボードフォーカスの状態を作りません。この 6 疑似クラスは引数を取らないため、:focus() のような形式は無効のままです
4 つの位置指定セレクタ :nth-child()、:nth-last-child()、:nth-of-type()、:nth-last-of-type() は、odd、even、整数位置、符号付き 10 進係数を持つ An+B 式(マシン整数範囲を超える係数も含む)を、設定されたスキャン予算内で受け付けます
タイプ位置は要素のローカル名と名前空間 URI の両方を比較します。:empty 規則は Selectors3 に従うため、空白テキストノードは要素を非空にしますが、コメントと処理命令はそうしません
:lang() は最も近い明示的な xml:lang または lang 値に従い、正確な値かハイフン接頭辞で ASCII 大文字小文字なしに一致し、明示的な空値は継承の停止として扱います
論理・関係セレクタリスト
:is() と :where() は、子孫・兄弟コンビネータを含むカンマ区切りの複合セレクタを受け付けます。未サポートの分岐は無視され、有効な空リストはどの要素にも一致しません
:is() は最大の引数詳細度を使います。現在の要素に一致しない有効な引数も含まれます。:where() は詳細度ゼロを寄与します
:not() は非空の複合セレクタリストを受け付け、どの引数も一致しないとき一致します。無効な引数はセレクタリスト全体を無効化します
:has() は相対セレクタを現在の要素にアンカーし、実際の子、子孫、後続兄弟を検査します。各相対引数は >、+、~ で始められ、その後に追加のサポートされるコンビネータが続きます
ネストした :has() と疑似要素は未サポートです。無効な相対引数は :has() リスト全体を無効化しますが、周囲のフォージビングな :is()・:where() リストは他の有効な引数を保持でき得ます
:not() と :has() は、ID 数、class・属性・疑似クラス数、タイプ数で比較した、最大の有効引数詳細度を使います
:nth-child(An+B of selector-list) と :nth-last-child(An+B of selector-list) は、非空の複合セレクタリストの和集合に一致する要素兄弟だけを数えます。ターゲット自体もその和集合に属さなければなりません
フィルタ付き位置指定セレクタは、自身の疑似クラス詳細度に加えて、最大のフィルタ詳細度を寄与します。of キーワードは CSS 識別子エスケープとコメント境界を受け付けます。一方 :nth-of-type() と :nth-last-of-type() はフィルタなしの文法を保持します
p:has(> span.urgent) { color: red }
span:is(.notice, p > .urgent) { font-weight: bold }
span:nth-child(2 of .included, [data-status="ready"]) { color: blue }
CSS コメントと識別子エスケープは、1〜6 桁の 16 進数、任意の後続 CSS 空白、補助 Unicode スカラーを含め、マッチング前にパースされます。ゼロ、サロゲート、範囲外の 16 進エスケープは U+FFFD に解決されます
宣言は、重要度、セレクタ詳細度、ドキュメントソース順でカスケードし、その後に対応する重要度でインラインスタイルが続きます。要素は既存のプロパティ別規則を通じて親の計算値を継承します
すべての内部 style 要素はテキストが消費される前に参加するため、ターゲットの後に現れる style 要素も適用されます。スタイルテキストは可視フィールドテキストにはなりません
宣言プロファイルは、フォントのサイズ・weight・スタイル・略記、設定されたファミリリスト、色、テキスト装飾、整列、行の高さ、字間・語間を保持します。長さ変換、親メトリクスのストラット、供給フォントの許可は、既存のネイティブリッチテキスト API に従います
保存された RV は計算済みインラインスタイルを含み、元の style 要素には依存しません。等価な FDF/XFDF インポートの繰り返しは、公開を要求する保留グラフ変更がなければ、正確なコミット済みバイトを保持します
ネイティブ Pascal コンシューマ、Windows のファイルジョブと元の V1 コールバック、Linux の JSON・V1 コールバックはデコーダを共有します。公開コールバックレコードレイアウトの変更は不要です
MaxTotalCodeUnits は、スタイルシートスキャン、抽出されたスタイルテキスト、展開された宣言の合計を制限します。MaxNodes は、ルール数、セレクタ名、属性・疑似条件の合計、関数型セレクタリスト、マッチング・ソート作業(相対走査とフィルタ付き兄弟スキャンを含む)を制限します。MaxDepth は、XML 収集、セレクタ部分、ネストした関数、再帰マッチングを制限します
キャンセルと上限の失敗は、デコーダの以前の出力とインポートトランザクションのコミット済みドキュメント状態を保持します。再試行は同じ元のオプションと予算を使います
無効または未サポートのトップレベルセレクタグループは全体として無視されます。フォージビングな is/where 引数リストは有効な分岐を保持します。無効な宣言はデコーダの既存の無視動作を保持し、未サポートの at-rule はスキップされます
インポートレイヤ、さらなるメディア機能、疑似要素、追加の状態疑似クラスと呼び出し側指定スコープルート、テーブル、画像、一般的な CSS レイアウトは進行中の作業です
ネイティブフォームデータ交換 · Linux リッチコールバック · Windows フォームデータ交換 · リッチ run スペーシング
呼び出し側供給の外部スタイルシートは、リソース URI 解決、メディア条件、選択スタイルシート集合とともに、リンクおよび再帰インポートされた CSS を追加します
ネイティブサポート照会は、サポートされる宣言・セレクタプロファイルを使って @supports グループと supports() インポートを許可し、共有境界とキャンセル復元を伴います