如果文本自己的字体不可用,它是否会从父元素继承字体堆栈?



我在一家电子邮件营销公司工作,我们使用专有软件来制作我们的HTML电子邮件。它非常古老,绝对不是编码员的梦想。不幸的是,获取新软件不是一个快速或简单的选择,因为它深深地嵌入在我们的系统中。

问题:

在制作电子邮件时,我主要手动编码,并依靠字体堆栈为我在字体方面提供了一些自由。其他不太精通代码的人将使用我们专有软件的GUI来尝试完成同样的事情。当他们在"构建"视图(而不是代码视图)中工作并复制和粘贴文本时,文本的样式会随之复制,但它只保留我的字体堆栈中的第一种字体。因此,当他们粘贴它时,它只会粘贴首选字体,而不会回退。

例:当有人复制以下内容时:

<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; color: #333333">Hello</span>

并将其粘贴到其他地方,这就是粘贴的内容:

<span style="font-family: 'Helvetica Neue'; font-size: 14px; color: #333333">Hello</span>

我们出色的软件不会复制完整的字体堆栈。所有后备字体都被丢弃了。我意识到这可以通过回到代码中轻松解决,但我们公司的人对 HTML 或 CSS 几乎一无所知,他们没有能力这样做。

我的问题是:

如果特定 SPAN 或 DIV 的字体在查看器的系统上不可用,它是否会从其父元素继承字体堆栈?

不,它不会.CSS继承不是这样工作的。

假设你有例如

<div style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">  
  <span style="font-family: 'Helvetica Neue'">Hello</span>
</div>

然后,span元素的 font-family 属性具有一个值集。这个值在大多数计算机(没有Helvetica Neue)中没有影响并不重要。这是价值,它被使用。由于元素具有分配给属性的值,因此它不能继承它。

这意味着当font-family中指定的字体不可用时,将使用用户代理自己的回退机制。基本上,将使用它的默认字体(通常是网络浏览器中的Times New Roman)。

是的,有可能:

span {font-style:inherit}

如果指定,Text 将仅从父元素继承字体。即便如此,它们也不会继承字体堆栈,只是从上一个分配中分配的任何字体。

我建议你重组你的字体堆栈,这样你的首选是确定的火字体。Arial 在 99% 的设备上都是通用的。 当其他人复制你的代码并最终只得到你的第一选择时,他们也会得到 Arial,这将正常工作。 这样,您就不必以系统字体结束。

最新更新