safari和chrome的标签渲染差异源于ua样式和继承逻辑不同,而非渲染引擎相同;chrome自2013年起使用blink,safari仍用webkit,二者默认背景色虽同为#ff0,但在padding、line-height继承、打印样式及深色模式适配上存在明显不一致。
HTML5 的 <mark></mark> 标签在 Safari 和 Chrome 中渲染一致,但行为细节和样式继承有差异,根源不在“渲染引擎不同”——二者现在都用 WebKit(Chrome 早年已切换,Safari 一直用),真正影响表现的是默认样式实现和用户代理(UA)CSS 的细微差别。
为什么说“Safari 和 Chrome 渲染引擎相同”是个常见误解
Chrome 自 2013 年起已从 WebKit 分支出 Blink 引擎,而 Safari 仍使用 WebKit。虽然两者同源,但 Blink 已大幅重构,不再共享 WebKit 的 UA 样式表逻辑。这意味着:<mark></mark> 的默认背景色、内边距、行高继承等,并非完全同步更新。
- Safari(WebKit)对
<mark></mark>的默认background-color是#ff0(纯黄),且不重置line-height或vertical-align - Chrome(Blink)同样用
#ff0,但部分版本会轻微调整padding(如上下加 1px),且更严格继承父级font-size和line-height - 二者均未给
<mark></mark>设置display(保持 inline),但若父元素是flex或grid容器,Safari 对 inline 元素的基线对齐处理略保守
<mark></mark> 在 Safari 与 Chrome 中的实际渲染差异点
差异几乎全来自 UA 样式和继承链,而非 HTML5 规范本身。直接查看浏览器开发者工具的 “Computed” 面板,会发现以下典型不一致: