6

我正在使用 NextJs 和 TailwindCSS 开展个人项目。

完成项目后,我使用私人导航器查看进度,但似乎笔画无法正常工作,我在除 Chrome 之外的所有浏览器中都遇到了这种情况。

这是我得到的:

在此处输入图像描述

这是所需的行为:

在此处输入图像描述

代码:

<div className="outline-title text-white pb-2 text-5xl font-bold text-center mb-12 mt-8">
      Values &amp; Process
</div>

CSS:

.outline-title {
  color: rgba(0, 0, 0, 0);
  -webkit-text-stroke: 2px black;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

有人可以解释或帮助解决这个问题。

浏览器兼容性: 在此处输入图像描述

4

3 回答 3

3

由于浏览器兼容性-webkit-text-stroke在少数浏览器中不支持。您可以通过使用阴影来实现轮廓效果。

希望这有效!

.outline-title {
font-family: sans-serif;
   color: white;
   text-shadow:
       1px 1px 0 #000,
     -1px -1px 0 #000,  
      1px -1px 0 #000,
      -1px 1px 0 #000,
       1px 1px 0 #000;
      font-size: 50px;
}
<div class="outline-title text-white pb-2 text-5xl font-bold text-center mb-12 mt-8">
      Values &amp; Process
</div>

----更新---

-webkit-text-stroke |  MDN 网络文档

于 2021-11-10T06:22:39.550 回答
3

TL:@Satheesh Kumar 提出的 DR
仍然text-shadow是最可靠的解决方案。

正如@diopside:指出这种渲染行为与可变字体有关。
这些内部轮廓的原因是基于一些可变字体的结构。

“传统”字体(因此在可变字体之前)——仅包含轮廓形状,可能还有反形状,例如小写e字形的切出内部“孔” 。

否则,您将遇到不希望的偶数/奇数问题,从而导致重叠路径区域导致排除形状。

应用这种构造方法,您将永远不会看到任何形状的重叠。您可以将它们想象成相当“合并”的复合路径。像前面提到的孔这样的计数器形状是基于简单的规则,比如逆时针路径方向——顺便说一句。您可能仍然会在 svg 剪切路径中遇到这个概念 - 在某些浏览器中无法完美呈现)。

在此处输入图像描述

然而,可变字体允许字形/字符的分段/重叠构造,以促进不同字体粗细和宽度之间的插值。

显然webkit-text-stroke勾勒出字形/字符的精确贝塞尔解剖结构,从而导致每个字形组件出现不希望的轮廓。

这本身不是可变字体的问题,因为在字体设计中使用重量和宽度插值至少 25 年。所以这个古怪的渲染问题取决于使用的字体——许多经典/旧字体编译成较新的可变字体格式仍将依赖于老式方法(避免任何重叠)。

于 2021-11-12T04:05:20.910 回答
2

在某些浏览器中使用可变宽度字体时,这是一个已知问题。至于为什么,我不知道

https://github.com/rsms/inter/issues/292#issuecomment-674993644

于 2021-11-10T09:02:08.207 回答