Canvas 和 SVG 怎样选择?
参考答案
Canvas 主要通过脚本绘制像素结果,SVG 以矢量图形元素描述图像。SVG 元素可以参与 DOM、样式和事件体系;Canvas 绘制后的图形对象通常需要应用自行管理状态和命中检测。
大量逐帧绘制、图像处理可考虑 Canvas,结构明确的矢量图标或可交互图表可考虑 SVG,但没有适用于所有规模和场景的绝对分界。设备像素比会影响 Canvas 的清晰度和绘制成本。
两者都需要考虑无障碍替代信息。Canvas 中看得见的文字与按钮不会自动成为语义控件;图表还应提供可理解的标题、数据摘要或表格,不能只依赖颜色和图形传达信息。