0

我在一家电子邮件营销公司工作,我们使用专有软件制作 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 的字体在查看器的系统上不可用,它是否会从其父元素继承字体堆栈?

4

3 回答 3

1

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

假设你有例如

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

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

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

于 2013-10-29T15:12:09.993 回答
1

对的,这是可能的:

span {font-style:inherit}
于 2013-10-29T14:14:04.023 回答
0

如果您指定,文本只会从父元素继承字体。即使那样,它们也不会继承字体堆栈,只是从先前的分配中分配的任何字体。

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

于 2016-07-21T00:13:26.033 回答