跳转到内容
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 配置下可确定性通过。
claimed在 src/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 且默认启用:

  • Subgrid(css_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-lr(css_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_1)1CR已验证高
CSS 网格布局(css_grid_1)1REC已验证高
CSS 网格布局 — Subgrid(css_grid_2)2CR已声明中
CSS 网格布局 — Masonry(css_grid_3)3ED不支持高
CSS Display 显示(css_display_3)3CR已声明中
CSS Display 显示(css_display_4)4ED未知低
CSS 定位布局(css_position_3)3WD已验证高
CSS 定位布局(css_position_4)4ED未知低
CSS 盒对齐(css_align_3)3WD已声明中
CSS 盒尺寸(css_sizing_3)3CR已声明低
CSS 盒子尺寸(css_sizing_4)4ED未知低
CSS 盒模型(css_box_3)3WD已声明中
CSS 盒模型(css_box_4)4ED未知低
CSS 多列布局(css_multicol_1)1CR已声明中
CSS 多列布局(css_multicol_2)2ED未知低
CSS Fragmentation 分段(css_break_3)3CR已验证中
CSS 分段(Fragmentation)(css_break_4)4ED未知低
CSS Containment 内容约束(css_contain_1)1REC不支持中
CSS Containment 内容约束 — @container(css_contain_2)2CR已声明低
CSS Containment 内容约束(css_contain_3)3ED不支持中
CSS 内联布局(css_inline_3)3WD已声明中
CSS 逻辑属性(css_logical_1)1WD已声明中
CSS Page Floats 分页浮动(css_page_floats_3)3ED不支持高
CSS 分页模板(css_page_templates_3)3ED不支持高
CSS Exclusions 排除(css_exclusions_1)1WD不支持高
CSS Regions 区域(css_regions_1)1WD不支持高
CSS 模板布局(css_template_1)1NOTE不支持高
CSS Layout API 布局 API(css_layout_api_1)1WD不支持高
W3C 模块等级W3C 阶段状态可信度
CSS 背景与边框(css_backgrounds_3)3CR已声明中
CSS 背景(css_backgrounds_4)4ED未知低
CSS 边框与盒子装饰(css_borders_4)4ED未知低
CSS Gap 装饰(css_gaps_1)1ED未知低
CSS 遮罩(Masking)(css_masking_1)1CR不支持中
CSS 阴影模块(css_shadow_1)1ED已声明中
CSS Shapes 形状(css_shapes_1)1CR不支持高
CSS Shapes 形状(css_shapes_2)2ED不支持高
Filter Effects 滤镜效果(filter_effects_1)1WD不支持高
Filter Effects 滤镜效果(filter_effects_2)2ED不支持高
合成与混合(compositing_1)1CR已声明中
合成(Compositing)(compositing_2)2ED未知低
CSS 填色与描边(fill_stroke_3)3ED未知低
Geometry Interfaces 几何接口(geometry_1)1CR不支持高
DOMMatrix 矩阵(matrix)1NOTE不支持高
Motion Path 运动路径(motion_1)1WD不支持高
W3C 模块等级W3C 阶段状态可信度
CSS 字体(css_fonts_3)3REC已验证中
CSS 字体(css_fonts_4)4CR已验证高
CSS 字体(css_fonts_5)5ED未知低
CSS 字体加载(css_font_loading_3)3WD不支持高
CSS 文本(css_text_3)3CR已声明中
CSS 文本(css_text_4)4ED已声明中
CSS 文本装饰(css_text_decor_3)3CR已声明中
CSS 文本装饰(css_text_decor_4)4ED未知低
CSS Ruby 注音标注(css_ruby_1)1WD不支持高
CSS 书写模式(css_writing_modes_3)3REC已声明中
CSS 书写模式(css_writing_modes_4)4ED未知低
CSS Speech 语音(css_speech_1)1CR不支持高
CSS 移动设备文本大小调整(css_size_adjust_1)1ED不支持高
W3C 模块等级W3C 阶段状态可信度
CSS 颜色(css_color_3)3REC已声明中
CSS 颜色(css_color_4)4CR已声明中
CSS 颜色(css_color_5)5WD未知低
CSS 颜色(css_color_6)6ED未知低
CSS 颜色调整(css_color_adjust_1)1CR不支持高
CSS 颜色 HDR(css_color_hdr_1)1ED不支持高
CSS 图像(css_images_3)3CR已声明中
CSS 图像(css_images_4)4ED未知低
CSS 图像(css_images_5)5ED未知低
CSS 图像动画(css_image_animation_1)1ED不支持高
W3C 模块等级W3C 阶段状态可信度
CSS 选择器(selectors_3)3REC已声明中
CSS 选择器(selectors_4)4WD已声明中
CSS 选择器(selectors_5)5ED未知低
CSS 非元素选择器(selectors_nonelement_1)1WD不支持高
CSS 伪元素(css_pseudo_4)4WD已声明中
CSS Cascading(层叠与继承)(css_cascade_3)3REC已验证高
CSS Cascading 层叠(css_cascade_4)4CR已验证高
CSS Cascading 层叠(css_cascade_5)5CR已验证高
CSS Cascading 层叠(css_cascade_6)6WD未知低
CSS 值与单位(css_values_3)3REC已声明中
CSS 值与单位(css_values_4)4CR已声明中
CSS 值与单位(css_values_5)5ED未知低
CSS 自定义属性(css_variables_1)1CR已声明中
CSS 自定义属性(css_variables_2)2ED未知低
CSS 条件规则(css_conditional_3)3CR已声明中
CSS 条件规则(css_conditional_4)4ED未知低
CSS 条件规则(css_conditional_5)5ED未知低
CSS 条件值(css_conditional_values_1)1ED未知低
CSS Namespaces 命名空间(css_namespaces_3)3REC已声明低
CSS Style 属性(css_style_attr_1)1CR已声明中
CSS 语法(css_syntax_3)3CR已声明中
CSS Nesting 嵌套(css_nesting_1)1CR已声明中
CSS 环境变量(css_env_1)1ED不支持中
CSS 自定义函数与 Mixin(css_mixins_1)1ED未知低
CSS Extensions 扩展(css_extensions_1)1NOTE未知低
W3C 模块等级W3C 阶段状态可信度
CSS 列表与计数器(css_lists_3)3WD已声明中
CSS 计数器样式(css_counter_styles_3)3CR已声明中
CSS 生成内容(css_content_3)3WD已声明中
CSS 分页媒体生成内容(css_gcpm_3)3WD已声明中
CSS 分页媒体产生内容(css_gcpm_4)4ED未知低
W3C 模块等级W3C 阶段状态可信度
CSS 分页媒体(css_page_3)3WD已声明中
CSS 分页媒体(css_page_4)4NOTE未知低
CSS 打印配置(css_print)1NOTE已声明低
CSS 演示文稿层级(css_preslev_1)1NOTE不支持高
W3C 模块等级W3C 阶段状态可信度
CSS 溢出(css_overflow_3)3WD已声明低
CSS 溢出(css_overflow_4)4ED未知低
CSS 溢出(css_overflow_5)5ED未知低
CSS Overscroll 行为(css_overscroll_1)1CR不支持高
CSS 滚动锚定(css_scroll_anchoring_1)1WD不支持高
CSS Scroll Snap 滚动贴齐(css_scroll_snap_1)1REC不支持高
CSS Scroll Snap 滚动贴齐(css_scroll_snap_2)2WD不支持高
CSS 滚动条样式(css_scrollbars_1)1CR不支持高
CSS 基本用户界面(css_ui_3)3REC不支持中
CSS 基本用户界面(css_ui_4)4WD不支持高
CSS 表单控件样式(css_forms_1)1ED不支持高
CSS View Transitions 视图转场(css_view_transitions_1)1WD不支持高
CSS View Transitions 视图转场(css_view_transitions_2)2ED不支持高
CSS 空间导航(css_nav_1)1NOTE不支持高
CSS Route Matching 路由匹配(css_navigation_1)1ED不支持高
W3C 模块等级W3C 阶段状态可信度
CSS 表格(css_tables_3)3WD已验证高
W3C 模块等级W3C 阶段状态可信度
CSS Transforms 变形(css_transforms_1)1CR已声明中
CSS Transforms 变形(css_transforms_2)2ED未知低
CSS 动画(css_animations_1)1WD不支持高
CSS 动画(css_animations_2)2ED不支持高
CSS 转场(css_transitions_1)1WD不支持高
CSS 转场(css_transitions_2)2ED不支持高
CSS Easing 函数(css_easing_1)1CR不支持高
CSS Easing 函数(css_easing_2)2ED不支持高
Web Animations 网页动画(web_animations_1)1WD不支持高
Web Animations 网页动画(web_animations_2)2ED不支持高
Web Animations CSS 集成(web_animations_css_integration)1ED不支持高
Animation Triggers 动画触发(animation_triggers)1ED不支持高
指针驱动动画(pointer_animations_1)1ED不支持高
滚动驱动动画(scroll_animations_1)1ED不支持高
CSS Animation Worklet 动画 Worklet(css_animation_worklet)1ED不支持高
W3C 模块等级W3C 阶段状态可信度
CSS 锚点定位(css_anchor_position_1)1WD未知低
CSS 锚点定位(css_anchor_position_2)2ED未知低
CSS Highlight API 标记 API(css_highlight_api_1)1WD不支持高
CSS Properties and Values API 属性与值 API(css_properties_values_api_1)1CR不支持高
CSS Painting API 绘制 API(css_paint_api_1)1WD不支持高
CSS Typed OM 类型化 OM(css_typed_om_1)1WD不支持高
CSSOM(cssom_1)1WD不支持高
CSSOM View 视图(cssom_view_1)1WD不支持高
CSS Will Change 变更预示(css_will_change_1)1CR不支持高
CSS Linked Parameters 链接参数(css_link_params_1)1ED未知低
CSS Line Grid 行网格(css_line_grid_1)1NOTE未知低
CSS Rhythmic Sizing 节奏尺寸(css_rhythm_1)1ED未知低
CSS Round Display 圆形显示(css_round_display_1)1ED不支持高
CSS Shaders 着色器(css_shaders_1)1NOTE不支持高
CSS Viewport 视口(css_viewport_1)1NOTE不支持高
W3C 模块等级W3C 阶段状态可信度
媒体查询(mediaqueries_3)3REC已声明中
媒体查询(mediaqueries_4)4CR已声明中
媒体查询(mediaqueries_5)5WD未知低
W3C 模块等级W3C 阶段状态可信度
CSS Level 2 第二级(css_2_1)2.1REC已声明低
CSS Level 2.2 基准(css_2_2)2.2NOTE已声明低
CSS Snapshot 2026 快照(css_snapshot_2026)快照NOTE已声明低

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

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

若要让某一列从 claimed → verified:

  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_path、repro_profile、confidence。

若要让某一列从 unknown → claimed:

  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