Bỏ qua để đến nội dung
getnextpdf.com

Ma trận hỗ trợ CSS

NextPDF hiện thực kết xuất Cascading Style Sheets (CSS) theo các đặc tả đã công bố của World Wide Web Consortium (W3C). Hãy dùng trang này để rà soát từng mô-đun CSS trong tập đặc tả của NextPDF và trạng thái hỗ trợ đã qua kiểm toán tính trung thực của mô-đun đó trong pipeline kết xuất.

Bản sửa đổi này xuất phát từ đợt kiểm toán tính trung thực Wave 4 B2 (mục 4.4 của kế hoạch). Bản sửa đổi cấu trúc trước đó đã dùng các huy hiệu giữ chỗ chưa được xác minh. Đợt kiểm toán đã chấm lại mọi hàng dựa trên bằng chứng thực tế trên đĩa (src/Html/, tests/, tests/Wpt/corpus/), các bản ghi quyết định kiến trúc (ADR) về thay đổi gây phá vỡ v8/v9, và đợt kiểm toán nội bộ về độ phủ thuộc tính CSS. Đợt kiểm toán ưu tiên tính trung thực hơn độ phủ: khi bằng chứng cho thấy một huy hiệu phải bị hạ cấp, huy hiệu đó đã được hạ xuống.

Bốn huy hiệu phân loại từng hàng theo giao ước xác minh:

  • Verified — Có hiện thực trong src/Html/ cộng với một fixture tự động chuyên biệt, có giá trị: hoặc là một bộ kiểm thử ở cấp thuộc tính gồm ba tệp trở lên trong tests/Unit/Html/<Module>/, hoặc một phân mảnh tập Web Platform Tests (WPT) gồm năm mươi fixture trở lên trong tests/Wpt/corpus/. Chưa có đường cơ sở PDF (Portable Document Format) chuẩn vàng cho từng mô-đun CSS nào được nối dây, nên các hàng verified dùng hồ sơ tái lập structural (tương đương khẳng định PHPUnit), không bao giờ là bitwise.
  • Claimed — Hành vi của mô-đun được hiện thực trong src/Html/ (có dẫn đường dẫn mã nguồn), nhưng fixture chuyên biệt còn mỏng, dùng chung, hoặc chưa có. Mỗi hàng claimed có hiện thực cụ thể đều đi kèm một issue bổ sung lùi.
  • Not supported — Pipeline kết xuất PDF tĩnh không bao gồm mô-đun này: các API runtime/browser-only, các runtime scrolling/animation, và các phần việc đã bị W3C ngừng phát triển. Hàng này ghi lại lý do tương ứng.
  • Unknown — Mô-đun có trong tập đặc tả, nhưng đợt kiểm toán không tìm thấy bằng chứng nào về hiện thực hoặc fixture. Đợt kiểm toán không bao giờ suy đoán theo hướng cao hơn chỉ để cải thiện con số.

Huy hiệu partial của bản sửa đổi cấu trúc đã được gỡ bỏ: mọi hàng từng là partial đều được chấm lại thành claimed (có hiện thực, không có fixture chuyên biệt) hoặc verified.

Huy hiệuÝ nghĩa
verifiedsrc/Html/ + bộ fixture chuyên biệt (≥3 tệp) hoặc phân mảnh WPT (≥50 fixture); vượt qua một cách tất định theo hồ sơ structural.
claimedCó bằng chứng hiện thực trong src/Html/, nhưng không có fixture chuyên biệt. Issue bổ sung lùi đang được theo dõi.
not-supportedBị loại trừ một cách tường minh khỏi phạm vi PDF tĩnh. Lý do được ghi lại.
unknownKhông xác định được bằng chứng nào. Không suy đoán theo hướng cao hơn.

Cột Confidence là tín hiệu trung thực, không nhị phân, về bằng chứng đứng sau huy hiệu đã nêu (high / medium / low). Cột này độc lập với chính huy hiệu đó.

NextPDF hỗ trợ các mô-đun CSS liệt kê bên dưới ở các mức đã ghi chú. Các hàng Verified có một bộ fixture tự động chuyên biệt hoặc một phân mảnh tập WPT có giá trị, dùng để khẳng định hành vi của NextPDF và vượt qua một cách tất định theo hồ sơ tái lập structural. Các hàng Claimed có bằng chứng hiện thực trong src/Html/, nhưng chưa có fixture chuyên biệt; mỗi hàng được theo dõi bằng một issue bổ sung lùi tại issue theo dõi #614. Các hàng Not supported ghi lại ranh giới phạm vi tường minh cho mục tiêu PDF tĩnh.

Không có hàng nào tuyên bố khả năng tái lập ở mức byte, vì bản sửa đổi này không có đường cơ sở PDF chuẩn vàng cho từng mô-đun CSS. Giao ước xác minh cấm các hàng trống: khi không thể xác định mức hỗ trợ, hàng đó là unknown.

Số liệu đã kiểm toán (bản sửa đổi này)

Phần tiêu đề “Số liệu đã kiểm toán (bản sửa đổi này)”
Trạng tháiSố mô-đunĐộ tin cậy (high / medium / low)
Verified128 / 4 / 0
Claimed490 / 35 / 14
Not supported6762 / 5 / 0
Unknown390 / 0 / 39
Tổng16770 / 44 / 53

Khối summary của bản sửa đổi cấu trúc không nhất quán nội bộ: nó khai báo tổng 148 (18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown), trong khi tệp lại chứa 167 hàng mô-đun với các nhãn cộng lại thành 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown. Đợt kiểm toán này đã chỉnh tổng về con số thực là 167 và chấm lại mọi hàng dựa trên bằng chứng trên đĩa: Verified giảm từ con số 34 được tuyên bố xuống còn 12 có cơ sở. Mức giảm đó là kết quả đúng của một đợt kiểm toán trung thực, không phải một bước thụt lùi. Toàn bộ chênh lệch before/after nằm trong tệp đi kèm _css-matrix-truth-report.md trong repo.

Bản sửa đổi cấu trúc đã gán nhãn sai cho ba khả năng đang hoạt động, coi chúng như đã bị gỡ bỏ hoặc không được hỗ trợ. ADR-027 và ADR-028 chỉ gỡ bỏ phần enum ExperimentalFeature đánh dấu chọn tham gia (opt-in); các khả năng này vẫn đang hoạt động và bật theo mặc định:

  • Subgrid (css_grid_2) — đang hoạt động; CssFeatureFlags::$layoutSubgrid bật theo mặc định. Khả năng này đã bị gán nhãn sai là “subgrid bị gỡ bỏ cứng ở v9.0.0”.
  • @container truy vấn (css_contain_2) — phần điều phối lúc chạy được ADR-028 nêu rõ là không thay đổi; tùy chọn từ chối (opt-out) bằng cờ được giữ lại. Khả năng này đã bị gán nhãn sai là “bị gỡ bỏ cứng ở v9.0.0”.
  • writing-mode: vertical-lr (css_writing_modes_3) — bật theo mặc định, ở trạng thái Stable kể từ v7.0.0; ADR-027 chỉ nâng cấp quy trình bắt tay loại bỏ. Khả năng này đã bị gán nhãn sai là “bị loại bỏ/gỡ bỏ ở v8.0.0”.

Tập hàng cho từng mô-đun ở dạng máy đọc được nằm trong tệp css-support-matrix-data.yaml trong repo; đây là nguồn chân lý. Trang này là bản trình bày cho người đọc, được nhóm theo danh mục. Các thành phần Astro tiêu thụ trực tiếp dữ liệu YAML trong quá trình dựng tài liệu.

Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Flexible Box Layout (css_flexbox_1)1CRVerifiedhigh
CSS Grid Layout (css_grid_1)1RECVerifiedhigh
CSS Grid Layout — Subgrid (css_grid_2)2CRClaimedmedium
CSS Grid Layout — Masonry (css_grid_3)3EDNot supportedhigh
CSS Display (css_display_3)3CRClaimedmedium
CSS Display (css_display_4)4EDUnknownlow
CSS Positioned Layout (css_position_3)3WDVerifiedhigh
CSS Positioned Layout (css_position_4)4EDUnknownlow
CSS Box Alignment (css_align_3)3WDClaimedmedium
CSS Box Sizing (css_sizing_3)3CRClaimedlow
CSS Box Sizing (css_sizing_4)4EDUnknownlow
CSS Box Model (css_box_3)3WDClaimedmedium
CSS Box Model (css_box_4)4EDUnknownlow
CSS Multi-column Layout (css_multicol_1)1CRClaimedmedium
CSS Multi-column Layout (css_multicol_2)2EDUnknownlow
CSS Fragmentation (css_break_3)3CRVerifiedmedium
CSS Fragmentation (css_break_4)4EDUnknownlow
CSS Containment (css_contain_1)1RECNot supportedmedium
CSS Containment — @container (css_contain_2)2CRClaimedlow
CSS Containment (css_contain_3)3EDNot supportedmedium
CSS Inline Layout (css_inline_3)3WDClaimedmedium
CSS Logical Properties (css_logical_1)1WDClaimedmedium
CSS Page Floats (css_page_floats_3)3EDNot supportedhigh
CSS Pagination Templates (css_page_templates_3)3EDNot supportedhigh
CSS Exclusions (css_exclusions_1)1WDNot supportedhigh
CSS Regions (css_regions_1)1WDNot supportedhigh
CSS Template Layout (css_template_1)1NOTENot supportedhigh
CSS Layout API (css_layout_api_1)1WDNot supportedhigh
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Backgrounds and Borders (css_backgrounds_3)3CRClaimedmedium
CSS Backgrounds (css_backgrounds_4)4EDUnknownlow
CSS Borders and Box Decorations (css_borders_4)4EDUnknownlow
CSS Gap Decorations (css_gaps_1)1EDUnknownlow
CSS Masking (css_masking_1)1CRNot supportedmedium
CSS Shadow Module (css_shadow_1)1EDClaimedmedium
CSS Shapes (css_shapes_1)1CRNot supportedhigh
CSS Shapes (css_shapes_2)2EDNot supportedhigh
Filter Effects (filter_effects_1)1WDNot supportedhigh
Filter Effects (filter_effects_2)2EDNot supportedhigh
Compositing and Blending (compositing_1)1CRClaimedmedium
Compositing (compositing_2)2EDUnknownlow
CSS Fill and Stroke (fill_stroke_3)3EDUnknownlow
Geometry Interfaces (geometry_1)1CRNot supportedhigh
DOMMatrix (matrix)1NOTENot supportedhigh
Motion Path (motion_1)1WDNot supportedhigh
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Fonts (css_fonts_3)3RECVerifiedmedium
CSS Fonts (css_fonts_4)4CRVerifiedhigh
CSS Fonts (css_fonts_5)5EDUnknownlow
CSS Font Loading (css_font_loading_3)3WDNot supportedhigh
CSS Text (css_text_3)3CRClaimedmedium
CSS Text (css_text_4)4EDClaimedmedium
CSS Text Decoration (css_text_decor_3)3CRClaimedmedium
CSS Text Decoration (css_text_decor_4)4EDUnknownlow
CSS Ruby (css_ruby_1)1WDNot supportedhigh
CSS Writing Modes (css_writing_modes_3)3RECClaimedmedium
CSS Writing Modes (css_writing_modes_4)4EDUnknownlow
CSS Speech (css_speech_1)1CRNot supportedhigh
CSS Mobile Text Size Adjustment (css_size_adjust_1)1EDNot supportedhigh
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Color (css_color_3)3RECClaimedmedium
CSS Color (css_color_4)4CRClaimedmedium
CSS Color (css_color_5)5WDUnknownlow
CSS Color (css_color_6)6EDUnknownlow
CSS Color Adjustment (css_color_adjust_1)1CRNot supportedhigh
CSS Color HDR (css_color_hdr_1)1EDNot supportedhigh
CSS Images (css_images_3)3CRClaimedmedium
CSS Images (css_images_4)4EDUnknownlow
CSS Images (css_images_5)5EDUnknownlow
CSS Image Animation (css_image_animation_1)1EDNot supportedhigh
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Selectors (selectors_3)3RECClaimedmedium
CSS Selectors (selectors_4)4WDClaimedmedium
CSS Selectors (selectors_5)5EDUnknownlow
CSS Non-element Selectors (selectors_nonelement_1)1WDNot supportedhigh
CSS Pseudo-Elements (css_pseudo_4)4WDClaimedmedium
CSS Cascading and Inheritance (css_cascade_3)3RECVerifiedhigh
CSS Cascading (css_cascade_4)4CRVerifiedhigh
CSS Cascading (css_cascade_5)5CRVerifiedhigh
CSS Cascading (css_cascade_6)6WDUnknownlow
CSS Values and Units (css_values_3)3RECClaimedmedium
CSS Values and Units (css_values_4)4CRClaimedmedium
CSS Values and Units (css_values_5)5EDUnknownlow
CSS Custom Properties (css_variables_1)1CRClaimedmedium
CSS Custom Properties (css_variables_2)2EDUnknownlow
CSS Conditional Rules (css_conditional_3)3CRClaimedmedium
CSS Conditional Rules (css_conditional_4)4EDUnknownlow
CSS Conditional Rules (css_conditional_5)5EDUnknownlow
CSS Conditional Values (css_conditional_values_1)1EDUnknownlow
CSS Namespaces (css_namespaces_3)3RECClaimedlow
CSS Style Attributes (css_style_attr_1)1CRClaimedmedium
CSS Syntax (css_syntax_3)3CRClaimedmedium
CSS Nesting (css_nesting_1)1CRClaimedmedium
CSS Environment Variables (css_env_1)1EDNot supportedmedium
CSS Custom Functions and Mixins (css_mixins_1)1EDUnknownlow
CSS Extensions (css_extensions_1)1NOTEUnknownlow
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Lists and Counters (css_lists_3)3WDClaimedmedium
CSS Counter Styles (css_counter_styles_3)3CRClaimedmedium
CSS Generated Content (css_content_3)3WDClaimedmedium
CSS Generated Content for Paged Media (css_gcpm_3)3WDClaimedmedium
CSS Generated Content for Paged Media (css_gcpm_4)4EDUnknownlow
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Paged Media (css_page_3)3WDClaimedmedium
CSS Paged Media (css_page_4)4NOTEUnknownlow
CSS Print Profile (css_print)1NOTEClaimedlow
CSS Presentation Levels (css_preslev_1)1NOTENot supportedhigh
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Overflow (css_overflow_3)3WDClaimedlow
CSS Overflow (css_overflow_4)4EDUnknownlow
CSS Overflow (css_overflow_5)5EDUnknownlow
CSS Overscroll Behavior (css_overscroll_1)1CRNot supportedhigh
CSS Scroll Anchoring (css_scroll_anchoring_1)1WDNot supportedhigh
CSS Scroll Snap (css_scroll_snap_1)1RECNot supportedhigh
CSS Scroll Snap (css_scroll_snap_2)2WDNot supportedhigh
CSS Scrollbars Styling (css_scrollbars_1)1CRNot supportedhigh
CSS Basic User Interface (css_ui_3)3RECNot supportedmedium
CSS Basic User Interface (css_ui_4)4WDNot supportedhigh
CSS Form Control Styling (css_forms_1)1EDNot supportedhigh
CSS View Transitions (css_view_transitions_1)1WDNot supportedhigh
CSS View Transitions (css_view_transitions_2)2EDNot supportedhigh
CSS Spatial Navigation (css_nav_1)1NOTENot supportedhigh
CSS Route Matching (css_navigation_1)1EDNot supportedhigh
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Table (css_tables_3)3WDVerifiedhigh
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Transforms (css_transforms_1)1CRClaimedmedium
CSS Transforms (css_transforms_2)2EDUnknownlow
CSS Animations (css_animations_1)1WDNot supportedhigh
CSS Animations (css_animations_2)2EDNot supportedhigh
CSS Transitions (css_transitions_1)1WDNot supportedhigh
CSS Transitions (css_transitions_2)2EDNot supportedhigh
CSS Easing Functions (css_easing_1)1CRNot supportedhigh
CSS Easing Functions (css_easing_2)2EDNot supportedhigh
Web Animations (web_animations_1)1WDNot supportedhigh
Web Animations (web_animations_2)2EDNot supportedhigh
Web Animations CSS Integration (web_animations_css_integration)1EDNot supportedhigh
Animation Triggers (animation_triggers)1EDNot supportedhigh
Pointer-driven Animations (pointer_animations_1)1EDNot supportedhigh
Scroll-driven Animations (scroll_animations_1)1EDNot supportedhigh
CSS Animation Worklet (css_animation_worklet)1EDNot supportedhigh
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Anchor Positioning (css_anchor_position_1)1WDUnknownlow
CSS Anchor Positioning (css_anchor_position_2)2EDUnknownlow
CSS Highlight API (css_highlight_api_1)1WDNot supportedhigh
CSS Properties and Values API (css_properties_values_api_1)1CRNot supportedhigh
CSS Painting API (css_paint_api_1)1WDNot supportedhigh
CSS Typed OM (css_typed_om_1)1WDNot supportedhigh
CSSOM (cssom_1)1WDNot supportedhigh
CSSOM View (cssom_view_1)1WDNot supportedhigh
CSS Will Change (css_will_change_1)1CRNot supportedhigh
CSS Linked Parameters (css_link_params_1)1EDUnknownlow
CSS Line Grid (css_line_grid_1)1NOTEUnknownlow
CSS Rhythmic Sizing (css_rhythm_1)1EDUnknownlow
CSS Round Display (css_round_display_1)1EDNot supportedhigh
CSS Shaders (css_shaders_1)1NOTENot supportedhigh
CSS Viewport (css_viewport_1)1NOTENot supportedhigh
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
Media Queries (mediaqueries_3)3RECClaimedmedium
Media Queries (mediaqueries_4)4CRClaimedmedium
Media Queries (mediaqueries_5)5WDUnknownlow
Mô-đun W3CCấpW3CTrạng tháiĐộ tin cậy
CSS Level 2 (css_2_1)2.1RECClaimedlow
CSS Level 2.2 (css_2_2)2.2NOTEClaimedlow
CSS Snapshot 2026 (css_snapshot_2026)snapshotNOTEClaimedlow

Các đặc tả không thuộc CSS (mang tính thông tin)

Phần tiêu đề “Các đặc tả không thuộc CSS (mang tính thông tin)”

Các mô-đun W3C này xuất hiện trong tập đặc tả nhưng nằm ngoài pipeline kết xuất CSS. Khi phù hợp, các trang tính năng tương ứng sẽ liên kết tới chúng.

Mô-đun W3CW3CTrạng tháiĐộ tin cậyỞ đâu
W3C SVG 1.1 (svg_1_1)RECClaimedlowTập con vẽ SVG nội tuyến trong Renderer/PaintCommand/; không có fixture dành cho ma trận CSS.
W3C SVG 2.0 (svg_2_0)CRUnknownlowThuộc phạm vi pipeline Premium; không có bằng chứng ở core.
W3C PNG 3rd Edition (png_3)WDClaimedlowGiải mã PNG trong mô-đun Graphics/ (bên ngoài HTML/CSS).
W3C WOFF 1.0 (woff_1_0)RECClaimedlowWOFF thông qua stack Font; không có fixture dành cho ma trận CSS.
W3C WOFF 2.0 (woff_2_0)RECClaimedlowWOFF2 thông qua stack Font; không có fixture dành cho ma trận CSS.
W3C WCAG 2.2 (wcag_2_2)RECVerifiedmediumsrc/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 tệp) — PDF/UA-2.
W3C WAI-ARIA 1.2 (wai_aria_1_2)RECVerifiedmediumtests/Unit/Accessibility/HtmlAam/ (4 tệp).
W3C ARIA Bundle (w3c_aria_bundle)RECClaimedlowGói hướng dẫn; bằng chứng cụ thể nằm ở hàng WAI-ARIA.
W3C AAM Bundle (w3c_aam_bundle)NOTEClaimedlowCon trỏ tới gói; bằng chứng nằm ở các hàng WAI-ARIA/WCAG.
W3C ATAG 2.0 (atag_2_0)RECNot supportedhighKhả năng tiếp cận của công cụ soạn thảo; không áp dụng.
W3C XSL 1.1 (xsl_1_1)RECNot supportedhighMô hình định dạng song song XSL-FO; chưa được hiện thực.
W3C XSD 1.1 Part 1 (xsd_1_1_part1)RECNot supportedhighLược đồ XML; không áp dụng.
W3C XSLT 3.0 (xslt_3_0)RECNot supportedhighNgôn ngữ biến đổi; không áp dụng.
Resize Observer (resize_observer_1)CRNot supportedhighAPI runtime của trình duyệt.

Để một hàng nâng cấp từ claimedverified:

  1. Một bộ fixture chuyên biệt ở cấp thuộc tính nằm trong tests/Unit/Html/<Module>/ (≥3 tệp) hoặc một phân mảnh tập WPT có giá trị (≥50 fixture) trong tests/Wpt/corpus/ được nâng cấp thành một test có khẳng định.
  2. Fixture khẳng định hành vi của NextPDF so với văn phạm W3C cho các thuộc tính chính của mô-đun.
  3. Fixture vượt qua một cách tất định theo một NextPDF\Testing\ReproducibilityProfile (structural cho các fixture có khẳng định; bitwise chỉ khi đã có đường cơ sở PDF chuẩn vàng cho từng mô-đun).
  4. Trường nextpdf_status của hàng trong tệp css-support-matrix-data.yaml trong repo chuyển thành verified, đồng thời fixture_path, repro_profile, và confidence được cập nhật.

Để một hàng nâng cấp từ unknownclaimed:

  1. Một đợt kiểm toán xác nhận bằng chứng hiện thực trong src/Html/ (có đường dẫn trong evidence + notes).
  2. Một issue bổ sung lùi được mở và liên kết trong backfill_issue.
  • HTML: hệ thống con kết xuất HTML+CSS sang PDF — công cụ đứng sau các khả năng này, bao gồm các ghi chú về hành vi của bảng, flex, gradient và phân trang.
  • Các tính năng CSS không được hỗ trợ và cách khắc phục — các giới hạn cụ thể theo từng hành vi.
  • Kết xuất HTML tiếng Ả Rập từ phải sang trái — hỗ trợ từ phải sang trái và hai chiều cùng các ranh giới hiện tại của nó.
  • Phân trang bảng HTML lớn trên nhiều trang — phân trang bảng qua nhiều trang.
  • Báo cáo trung thực của ma trận CSS (_css-matrix-truth-report.md, trong repo) — chênh lệch kiểm toán before/after, phân bố độ tin cậy, nhật ký khử thổi phồng.
  • Đợt kiểm toán độ phủ thuộc tính CSS (architecture/css-property-coverage-audit.md, trong repo) — đợt kiểm toán nội bộ bốn trạng thái cho từng thuộc tính (Policy/Parsed/Applied/Rendered).
  • ADR-027 v8.0.0 BREAKING (architecture/adr/ADR-027-v8-breaking.md, trong repo) — nâng cấp quy trình bắt tay loại bỏ của vertical-lr (khả năng được giữ lại).
  • ADR-028 v9.0.0 BREAKING (architecture/adr/ADR-028-v9-breaking.md, trong repo) — gỡ bỏ dấu enum của Grid/Subgrid/@container (các khả năng được giữ lại).
  • Issue theo dõi bổ sung lùi: https://github.com/nextpdf-labs/nextpdf/issues/614