这个html/css在Firefox和 chromium 中呈现的不同--text-decorationtext-shadow的分层被交换了.

.foo {
    font-size:2em;
    text-decoration:underline LightBlue 1ex; 
    text-decoration-skip-ink:none; 
    text-underline-offset:-1ex; 
    text-shadow: 1px 1px 3px HotPink;
}
    
<spann class="foo">
   Gaze upon this text in Firefox and  chromium . 
</span>

以下是截图:

Firefox

text-decoration on top of text-shadow

chromium

text-shadow on top of text-decoration

这里发生了什么事?是否有一个浏览器不正确地实现了该标准?在不检测浏览器和样式的情况下,是否可以编写css以确保一致性?

推荐答案

Text-decoration Level 3规格中 Select :

阴影必须在元素的边框和/或背景(如果存在)与元素文本和文本装饰之间的堆栈级别绘制.

也就是说,文本阴影必须绘制在下划线之前,因此下划线将覆盖文本阴影.所以 firefox 的渲染是正确的.

这被记录为Chromium Bug Issue 713376: Text shadow should paint behind all text decorations and text.

Html相关问答推荐

如何让一个动态列表以网格方式水平显示

springBoot + Thymeleaf:基于Locale设置页面语言

悬停时跳转的内容

应用于文本而不是弹性容器的Flexbox属性

<;img>;和具有负边距的元素的堆叠顺序

如何防止第二列中的内容影响第一列中内容的位置?

渐变进度条位置

将导航项目底部边框与导航栏对齐

如何将功能附加到嵌入式药剂中的按钮?

带有图标和悬停过渡的CSS按钮

使用bash从html表格中提取表格

希望平稳过渡到悬停状态

如何使链接组件内的内容不重新路由Next.js13

太多的 Web 视图实例导致手机过热 Swift

如何使粘性导航栏能够跨其他组件工作?

如何避免链接在悬停 timeshift 动,同时增加导航栏中的字体大小?

如何将某些 div 的高度限制为具有 display flex 行的同一父 div 中的其他 div?

HTML 标记未在页面上展开

绝对定位的 div 与另一个静态定位的 div 的边距顶部一起移动

文本输入在 Chrome 中保持水平滚动,带有文本溢出:省略号