跳转到内容
getnextpdf.com

CSS 支持矩阵

NextPDF 按 W3C 已发布规范实现 CSS 渲染。本页逐项列出 NextPDF 规范语料库中的每个 CSS 模块,并记录各模块在渲染管线中经过真实审计的支持状态。

此修订版是 Wave 4 B2 真实审计(plan 第 4.4 节)的产出。此前结构性修订版中的徽章只是未经验证的 placeholder(占位符)。本页每一列都依据磁盘上的实际证据(src/Html/tests/tests/Wpt/corpus/)、v8/v9 破坏性变更 ADR,以及内部 CSS 属性覆盖审计重新评定。诚实优先于覆盖率:审计需要调低某个徽章时,就如实调低。

按照验证契约,每一列以四种徽章分类:

  • Verified — 同时具备 src/Html/ 中的实现以及一份实质性的专属自动化 fixture:tests/Unit/Html/<Module>/ 下三个以上文件组成的属性层级测试套件, tests/Wpt/corpus/ 下五十个以上 fixture 组成的 Web Platform Tests 语料分片。目前尚未接入逐 CSS 模块的黄金 PDF 基准,因此 verified 列采用 structural 可重现性配置(PHPUnit 断言等价),绝不采用 bitwise
  • Claimed — 模块行为已在 src/Html/ 中实现(并引用源代码路径),但专属 fixture 过于薄弱、与其他模块共用,或根本不存在。每一个有具体实现的 claimed 列都有对应的回补(backfill)issue。
  • Not supported — 不属于静态 PDF 渲染管线的范围。运行时 API 或仅限浏览器的 API、scrolling/animation 运行时,以及 W3C 已停止的工作。原因已记录。
  • Unknown — 模块存在于语料库中,但无法判定任何实现或测试 fixture 证据。审计绝不为了抬高数字而向上推测。

结构性修订版中的 partial 徽章已废止:原本每一个 partial 列都已重新评定为 claimed(有实现、无专属 fixture)或 verified

徽章意义
verifiedsrc/Html/ + 专属 fixture 套件(≥3 个文件)或 WPT 分片(≥50 个 fixture);在 structural 配置下可确定性通过。
claimedsrc/Html/ 有实现证据,但无专属 fixture。已创建回补 issue 用于跟踪。
not-supported明确排除在静态 PDF 范围之外。原因已记录。
unknown无可判定的证据。未向上推测。

本表的 Confidence 栏为对应徽章的证据强度提供诚实、非二元的信号(high / medium / low),与徽章本身独立判断。

NextPDF 按下列各项标注的等级支持这些 CSS 模块。Verified 列具备专属自动化 fixture 套件或实质性的 WPT 语料分片,会断言 NextPDF 的行为,并在 structural 可重现性配置下确定性通过。Claimed 列在 src/Html/ 中有实现证据,但尚无专属 fixture;每一列都由 tracking issue #614 下的回补 issue 跟踪。Not supported 列记录静态 PDF 目标的明确范围边界。

此修订版不包含逐 CSS 模块的黄金 PDF 基准;没有任何一列声明达到字节层级的可重现性。验证契约禁止空白列 — 凡是无法判定支持状态的列,一律标为 unknown

状态模块可信度(高 / 中 / 低)
已验证128 / 4 / 0
已声明490 / 35 / 14
不支持6762 / 5 / 0
未知390 / 0 / 39
总计16770 / 44 / 53

结构性修订版的 summary 区块本身前后不一致:它声明总数 148(18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown),但文件实际包含 167 个模块列,其自身标签合计为 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown。本次审计将总数更正为真实的 167,并依据磁盘上的实际证据重新评定每一列:Verified 从声明的 34 降为有实证支撑的 12。这个下降是诚实审计应有的正确结果,而不是倒退。完整的 before/after 差异记录在 repo 内的 _css-matrix-truth-report.md 附带文件中。

结构性修订版把三项仍可用的能力误标为已移除或不支持。ADR-027 与 ADR-028 仅移除 ExperimentalFeature enum 的可选标记;能力本身仍保持 LIVE 且默认启用:

  • Subgridcss_grid_2)— LIVE;CssFeatureFlags::$layoutSubgrid 默认打开。曾被误标为“subgrid hard-removed v9.0.0”。
  • @container 查询css_contain_2)— ADR-028 明确未更改其运行时派发;旗标退出选项保留。曾被误标为“hard-removed v9.0.0”。
  • writing-mode: vertical-lrcss_writing_modes_3)— 自 v7.0.0 起即默认打开且保持稳定;ADR-027 只是让弃用握手流程毕业。曾被误标为“deprecated/removed v8.0.0”。

机器可读的逐模块数据列存放在 repo 内的 css-support-matrix-data.yaml,并作为事实来源。本页是面向读者的呈现版本,按类别分组。Astro 组件在文档构建时直接读取该 YAML。

W3C 模块等级W3C 阶段状态可信度
CSS 弹性盒布局(css_flexbox_11CR已验证
CSS 网格布局(css_grid_11REC已验证
CSS 网格布局 — Subgrid(css_grid_22CR已声明
CSS 网格布局 — Masonry(css_grid_33ED不支持
CSS Display 显示(css_display_33CR已声明
CSS Display 显示(css_display_44ED未知
CSS 定位布局(css_position_33WD已验证
CSS 定位布局(css_position_44ED未知
CSS 盒对齐(css_align_33WD已声明
CSS 盒尺寸(css_sizing_33CR已声明
CSS 盒子尺寸(css_sizing_44ED未知
CSS 盒模型(css_box_33WD已声明
CSS 盒模型(css_box_44ED未知
CSS 多列布局(css_multicol_11CR已声明
CSS 多列布局(css_multicol_22ED未知
CSS Fragmentation 分段(css_break_33CR已验证
CSS 分段(Fragmentation)(css_break_44ED未知
CSS Containment 内容约束(css_contain_11REC不支持
CSS Containment 内容约束 — @containercss_contain_22CR已声明
CSS Containment 内容约束(css_contain_33ED不支持
CSS 内联布局(css_inline_33WD已声明
CSS 逻辑属性(css_logical_11WD已声明
CSS Page Floats 分页浮动(css_page_floats_33ED不支持
CSS 分页模板(css_page_templates_33ED不支持
CSS Exclusions 排除(css_exclusions_11WD不支持
CSS Regions 区域(css_regions_11WD不支持
CSS 模板布局(css_template_11NOTE不支持
CSS Layout API 布局 API(css_layout_api_11WD不支持
W3C 模块等级W3C 阶段状态可信度
CSS 背景与边框(css_backgrounds_33CR已声明
CSS 背景(css_backgrounds_44ED未知
CSS 边框与盒子装饰(css_borders_44ED未知
CSS Gap 装饰(css_gaps_11ED未知
CSS 遮罩(Masking)(css_masking_11CR不支持
CSS 阴影模块(css_shadow_11ED已声明
CSS Shapes 形状(css_shapes_11CR不支持
CSS Shapes 形状(css_shapes_22ED不支持
Filter Effects 滤镜效果(filter_effects_11WD不支持
Filter Effects 滤镜效果(filter_effects_22ED不支持
合成与混合(compositing_11CR已声明
合成(Compositing)(compositing_22ED未知
CSS 填色与描边(fill_stroke_33ED未知
Geometry Interfaces 几何接口(geometry_11CR不支持
DOMMatrix 矩阵(matrix1NOTE不支持
Motion Path 运动路径(motion_11WD不支持
W3C 模块等级W3C 阶段状态可信度
CSS 字体(css_fonts_33REC已验证
CSS 字体(css_fonts_44CR已验证
CSS 字体(css_fonts_55ED未知
CSS 字体加载(css_font_loading_33WD不支持
CSS 文本(css_text_33CR已声明
CSS 文本(css_text_44ED已声明
CSS 文本装饰(css_text_decor_33CR已声明
CSS 文本装饰(css_text_decor_44ED未知
CSS Ruby 注音标注(css_ruby_11WD不支持
CSS 书写模式(css_writing_modes_33REC已声明
CSS 书写模式(css_writing_modes_44ED未知
CSS Speech 语音(css_speech_11CR不支持
CSS 移动设备文本大小调整(css_size_adjust_11ED不支持
W3C 模块等级W3C 阶段状态可信度
CSS 颜色(css_color_33REC已声明
CSS 颜色(css_color_44CR已声明
CSS 颜色(css_color_55WD未知
CSS 颜色(css_color_66ED未知
CSS 颜色调整(css_color_adjust_11CR不支持
CSS 颜色 HDR(css_color_hdr_11ED不支持
CSS 图像(css_images_33CR已声明
CSS 图像(css_images_44ED未知
CSS 图像(css_images_55ED未知
CSS 图像动画(css_image_animation_11ED不支持
W3C 模块等级W3C 阶段状态可信度
CSS 选择器(selectors_33REC已声明
CSS 选择器(selectors_44WD已声明
CSS 选择器(selectors_55ED未知
CSS 非元素选择器(selectors_nonelement_11WD不支持
CSS 伪元素(css_pseudo_44WD已声明
CSS Cascading(层叠与继承)(css_cascade_33REC已验证
CSS Cascading 层叠(css_cascade_44CR已验证
CSS Cascading 层叠(css_cascade_55CR已验证
CSS Cascading 层叠(css_cascade_66WD未知
CSS 值与单位(css_values_33REC已声明
CSS 值与单位(css_values_44CR已声明
CSS 值与单位(css_values_55ED未知
CSS 自定义属性(css_variables_11CR已声明
CSS 自定义属性(css_variables_22ED未知
CSS 条件规则(css_conditional_33CR已声明
CSS 条件规则(css_conditional_44ED未知
CSS 条件规则(css_conditional_55ED未知
CSS 条件值(css_conditional_values_11ED未知
CSS Namespaces 命名空间(css_namespaces_33REC已声明
CSS Style 属性(css_style_attr_11CR已声明
CSS 语法(css_syntax_33CR已声明
CSS Nesting 嵌套(css_nesting_11CR已声明
CSS 环境变量(css_env_11ED不支持
CSS 自定义函数与 Mixin(css_mixins_11ED未知
CSS Extensions 扩展(css_extensions_11NOTE未知
W3C 模块等级W3C 阶段状态可信度
CSS 列表与计数器(css_lists_33WD已声明
CSS 计数器样式(css_counter_styles_33CR已声明
CSS 生成内容(css_content_33WD已声明
CSS 分页媒体生成内容(css_gcpm_33WD已声明
CSS 分页媒体产生内容(css_gcpm_44ED未知
W3C 模块等级W3C 阶段状态可信度
CSS 分页媒体(css_page_33WD已声明
CSS 分页媒体(css_page_44NOTE未知
CSS 打印配置(css_print1NOTE已声明
CSS 演示文稿层级(css_preslev_11NOTE不支持
W3C 模块等级W3C 阶段状态可信度
CSS 溢出(css_overflow_33WD已声明
CSS 溢出(css_overflow_44ED未知
CSS 溢出(css_overflow_55ED未知
CSS Overscroll 行为(css_overscroll_11CR不支持
CSS 滚动锚定(css_scroll_anchoring_11WD不支持
CSS Scroll Snap 滚动贴齐(css_scroll_snap_11REC不支持
CSS Scroll Snap 滚动贴齐(css_scroll_snap_22WD不支持
CSS 滚动条样式(css_scrollbars_11CR不支持
CSS 基本用户界面(css_ui_33REC不支持
CSS 基本用户界面(css_ui_44WD不支持
CSS 表单控件样式(css_forms_11ED不支持
CSS View Transitions 视图转场(css_view_transitions_11WD不支持
CSS View Transitions 视图转场(css_view_transitions_22ED不支持
CSS 空间导航(css_nav_11NOTE不支持
CSS Route Matching 路由匹配(css_navigation_11ED不支持
W3C 模块等级W3C 阶段状态可信度
CSS 表格(css_tables_33WD已验证
W3C 模块等级W3C 阶段状态可信度
CSS Transforms 变形(css_transforms_11CR已声明
CSS Transforms 变形(css_transforms_22ED未知
CSS 动画(css_animations_11WD不支持
CSS 动画(css_animations_22ED不支持
CSS 转场(css_transitions_11WD不支持
CSS 转场(css_transitions_22ED不支持
CSS Easing 函数(css_easing_11CR不支持
CSS Easing 函数(css_easing_22ED不支持
Web Animations 网页动画(web_animations_11WD不支持
Web Animations 网页动画(web_animations_22ED不支持
Web Animations CSS 集成(web_animations_css_integration1ED不支持
Animation Triggers 动画触发(animation_triggers1ED不支持
指针驱动动画(pointer_animations_11ED不支持
滚动驱动动画(scroll_animations_11ED不支持
CSS Animation Worklet 动画 Worklet(css_animation_worklet1ED不支持
W3C 模块等级W3C 阶段状态可信度
CSS 锚点定位(css_anchor_position_11WD未知
CSS 锚点定位(css_anchor_position_22ED未知
CSS Highlight API 标记 API(css_highlight_api_11WD不支持
CSS Properties and Values API 属性与值 API(css_properties_values_api_11CR不支持
CSS Painting API 绘制 API(css_paint_api_11WD不支持
CSS Typed OM 类型化 OM(css_typed_om_11WD不支持
CSSOM(cssom_11WD不支持
CSSOM View 视图(cssom_view_11WD不支持
CSS Will Change 变更预示(css_will_change_11CR不支持
CSS Linked Parameters 链接参数(css_link_params_11ED未知
CSS Line Grid 行网格(css_line_grid_11NOTE未知
CSS Rhythmic Sizing 节奏尺寸(css_rhythm_11ED未知
CSS Round Display 圆形显示(css_round_display_11ED不支持
CSS Shaders 着色器(css_shaders_11NOTE不支持
CSS Viewport 视口(css_viewport_11NOTE不支持
W3C 模块等级W3C 阶段状态可信度
媒体查询(mediaqueries_33REC已声明
媒体查询(mediaqueries_44CR已声明
媒体查询(mediaqueries_55WD未知
W3C 模块等级W3C 阶段状态可信度
CSS Level 2 第二级(css_2_12.1REC已声明
CSS Level 2.2 基准(css_2_22.2NOTE已声明
CSS Snapshot 2026 快照(css_snapshot_2026快照NOTE已声明

这些 W3C 模块出现在语料库中,但落在 CSS 渲染管线范围之外。适用时,会从对应的功能页面链接到它们。

W3C 模块W3C 阶段状态可信度说明
W3C SVG 1.1 矢量图形(svg_1_1REC已声明内联 SVG 绘制子集位于 Renderer/PaintCommand/;无 CSS-matrix fixture。
W3C SVG 2.0 矢量图形(svg_2_0CR未知属于 Premium 管线范围;内核无证据。
W3C PNG 第 3 版(png_3WD已声明PNG 解码位于 Graphics/ 模块(在 HTML/CSS 之外)。
W3C WOFF 1.0 网页字体(woff_1_0REC已声明WOFF 通过 Font stack 处理;无 CSS-matrix fixture。
W3C WOFF 2.0 网页字体(woff_2_0REC已声明WOFF2 通过 Font stack 处理;无 CSS-matrix fixture。
W3C WCAG 2.2 无障碍准则(wcag_2_2REC已验证src/Html/Aam/tests/Unit/Accessibility/HtmlAam/(4 个文件)— PDF/UA-2。
W3C WAI-ARIA 1.2 无障碍(wai_aria_1_2REC已验证tests/Unit/Accessibility/HtmlAam/(4 个文件)。
W3C ARIA 组合(w3c_aria_bundleREC已声明指南组合;具体证据见 WAI-ARIA 那一列。
W3C AAM 组合(w3c_aam_bundleNOTE已声明组合指针;证据见 WAI-ARIA/WCAG 各列。
W3C ATAG 2.0 创作工具无障碍(atag_2_0REC不支持创作工具无障碍;不适用。
W3C XSL 1.1 样式语言(xsl_1_1REC不支持XSL-FO 并行格式化模型;未实现。
W3C XSD 1.1 Part 1 结构描述(xsd_1_1_part1REC不支持XML schema;不适用。
W3C XSLT 3.0 转换语言(xslt_3_0REC不支持转换语言;不适用。
Resize Observer 尺寸观察器(resize_observer_1CR不支持浏览器运行时 API。

若要让某一列从 claimedverified

  1. tests/Unit/Html/<Module>/ 下有专属的属性层级 fixture 套件(≥3 个文件), tests/Wpt/corpus/ 下有实质性的 WPT 语料分片(≥50 个 fixture)被提升为带断言的测试。
  2. 该 fixture 会依据 W3C 文法,对该模块主要属性下的 NextPDF 行为做断言。
  3. 该 fixture 在 NextPDF\Testing\ReproducibilityProfile 中运行(structural 用于断言型 fixture;bitwise 仅在逐模块黄金 PDF 基准存在后采用)。
  4. 该列在 repo 内 nextpdf_status 中的 css-support-matrix-data.yaml 翻为 verified,并更新 fixture_pathrepro_profileconfidence

若要让某一列从 unknownclaimed

  1. 一次审计确认 src/Html/ 中有实现证据(并把路径引用到 evidence + notes)。
  2. 开立回补 issue,并链接到 backfill_issue
  • HTML:HTML+CSS 转 PDF 渲染子系统 — 这些能力背后的引擎,包含表格、flex、渐变与分页行为的说明。
  • 不支持的 CSS 特性与变通方案 — 各项行为的具体边界。
  • 渲染从右到左的阿拉伯语 HTML — 从右到左与双向书写的支持及其当前的边界。
  • 让大型 HTML 表格跨页分页 — 跨页的表格分页。
  • CSS matrix 真实审计报告(_css-matrix-truth-report.md,repo 内)— before/after 审计差异、可信度分布、去膨胀记录。
  • CSS 属性覆盖审计(architecture/css-property-coverage-audit.md,repo 内)— 内部四态逐属性审计 (Policy/Parsed/Applied/Rendered)。
  • ADR-027 v8.0.0 BREAKING(architecture/adr/ADR-027-v8-breaking.md,repo 内)— vertical-lr 弃用握手流程毕业(能力保留)。
  • ADR-028 v9.0.0 BREAKING(architecture/adr/ADR-028-v9-breaking.md,repo 内)— Grid/Subgrid/@container enum 标记移除(能力保留)。
  • 回补追踪 issue:https://github.com/nextpdf-labs/nextpdf/issues/614