我上次的屏幕录像教程是关于 如何使用 sIFR3 的,这是一种久经考验的技术,用于在 Web 上使用非 Web 标准字体(就像我们在 @font-face 获得更广泛支持之前一直在做的那样)。我喜欢 sIFR,它已经存在很长时间了,并且确实证明了自己是一项良好的技术,但它并不是唯一的选择。
David Chester 给我写信,告诉我他正在进行一个名为 typeface.js 的新项目。我试用了一下,它非常易于使用并且效果很好。
注意:我在这里只提供下载链接,因为网站本身没有“完整的可运行示例”样式的下载。我花了一点时间才弄清楚它的确切工作原理以及文件放置位置,所以我认为这可能会有所帮助。
更新:好的,演示现在再次可以运行了……问题是我在字体名称周围使用了引号,这导致了错误,并且我应用了多个字体(例如 font-family:Optimer, Arial;)。要使其正常工作,请不要使用任何引号,并且只应用一个字体(例如 font-family:Optimer;)。我在此示例中使用的字体 Qlassik 仍然无法正常工作。事后看来,我可能不应该使用一些随机的不完整字体=)
如何使用它
1. 下载它
从 这里 下载它并将其包含在您的页面中。将其包含在任何外部样式表 **之后**。
2. 找到您想要使用的字体
David 提供了三种您可以下载并使用的字体。或者,您可以找到自己喜欢的 TrueType 字体(在不违反任何版权法律的情况下!)。在我的示例中,我从 DaFont 上获取了一个免费的字体:Qlassik。(*存在问题,请参见上文)
3. 在您的页面中包含它
然后通过 转换器(在页面底部)运行它。这将生成一个新的 js 文件,请在 typeface.js 文件之后将其包含在您的页面中。再次提醒,这些文件应该放在您的样式表之后。
<script type="text/javascript" src="js/typeface-0.10.js"></script>
<script type="text/javascript" src="js/qlassik_medium_regular.typeface.js"></script>
4. 在标记中开始使用它
现在您已准备好开始使用它了!对于您希望使用新字体的任何文本,您需要为其指定一个名为“typeface-js”的类名,然后使用内联样式语句引用新字体名称。
<h1 class="typeface-js" style="font-family: 'Qlassik Medium'">
Testing a Headline
</h1>
您需要按其正确的名称引用字体。我发现找出其正确名称的最简单方法是安装它,然后在任何打开的应用程序的字体菜单中找到它。
想法
我可能玩了大约一个小时,所以我不会做出任何草率的判断或建议,但到目前为止它看起来很酷。仅仅是 JavaScript,而不是像 sIFR 一样既有 JavaScript 又有 Flash,或者像 FLIR 一样既有 JavaScript 又有 PHP,这一点让人感觉很简洁。
我也很喜欢复制粘贴仍然可以在支持 <canvas> 的浏览器中工作。
它也很容易上手!请告诉我你们的想法。
在我使用的 FF3 和 IE7 中似乎都不起作用。
我的 FF3、IE7 和 Safari3.0,以及 Google Chrome 也是如此。
Safari(Mac + Windows)上也是一样!
Canvas 对 SEO 友好吗?
我看到脚本为每个单词生成一个 canvas 标签。
抱歉各位,你们完全正确,我的测试在这里搞砸了,我已将该演示撤下,直到我能够解决问题。
这看起来很棒,离嵌入又近了一步。
这是一个非常棒的选项。我不使用任何其他工具,因为它们不支持复制粘贴,而且我一直不喜欢使用图像作为标题。
这将是我技巧包中的一个极好的补充。谢谢!
我想知道为每个单词添加一个 canvas 标签会产生多少额外开销——这可能会使这种方法仅适用于标题使用。生成的 js 文件大小如何——您能否说明一下?
@Jason:只要只选择 Flash 渲染的文本,sIFR 实际上就支持复制粘贴。但是,一旦您尝试选择混合文本,则只会复制 HTML 文本。
希望我们不必使用内联样式。尽管我想您可以使用 jQuery 并至少在一个地方完成它。
这真的很棒:) 因为它是由 css、js、html 制成的。
这将自动包含 utf8 支持。与 sFIR 不同,它只支持拉丁语。
谢谢
在这里也无法正常工作。
我一直在尝试,但在这里我无能为力。如果我无法解决问题并且没有收到作者的任何回复,我最终可能会撤下这篇文章。
抱歉各位!
如果您实际访问该网站,您会发现它在整个网站中都在使用,并且显然可以正常工作,因此一定是下载的版本或其他一些奇怪的错误导致了问题。
可能是您使用的字体?
除此之外,教程不错;)
在我的电脑上运行良好。我正在使用 Museo 和 Museo Sans 进行测试,它们看起来都很酷。
http://psnow.es/index.php/global/index2
在 Mac 上的 Safari 中运行良好,但在 Firefox 2 中不行。我还没有在任何其他浏览器中尝试过。
但这是一个很棒的小工具 :-)
我错了。它似乎不起作用。
我以为它可以工作,因为我仍然安装了 Museo Sans,但是当我禁用它时,出现了默认字体。因此,.js 无法按预期工作。
奇怪……我真的很期待这个。
刚刚读了更新,哈哈。
所以……我尝试了各种字体,但只用Helvetiker成功了。
这确实是一个非常酷的不用标准字体的可能性。因为我不想依赖Flash来实现这一点,所以我非常想尝试一下。
我不介意使用@font-face规则,因为我不在乎一些用户是否看到标准字体,但似乎一些浏览器(比如Firefox 2或Mac上的Camino,基于相同的引擎,还有Opera)在处理像©这样的实体时,应用该规则会出现问题。
这真的很酷。感谢Chris的介绍!!
有没有人在使用H1标签时遇到问题?似乎只在div上有效。
任何帮助都将不胜感激。
很遗憾,这个脚本在Opera中不起作用(我相信这是暂时的)。还有一个大问题是生成的字体的尺寸。有时它们可能大约有500KB,这有点大。如果这两个问题能够以某种方式解决,这个脚本将是无价之宝,我发誓。
附言:喜欢可以通过CSS控制输出的方式。
我让它工作了,但是当我尝试转换我自己的字体时,
转换器没有起作用。
我稍后会再尝试一下。
@Mark,我也在H1标签上遇到问题,如果你看一下演示,Chris也为标题使用了div,尽管在这个页面上的演示代码中使用了H1。我已经给typeface.js的作者发了邮件,希望这将在未来的版本中得到支持 :)
似乎无法选择文本。在这种情况下,我认为图像替换会更容易。
在FF3 Mac或Safari上也无法选择标题。
在FF3上,“安静点,你们这帮疯孩子!”显示得不清晰。在Safari上显示为常规字体,因此可以选择。
不过,它看起来像一个很棒的插件!
是的,看起来不错。我的想法是这如何影响所用项目的SEO。你们对此不担心吗?
@Sam
它根本不会影响SEO,因为文本仅在用户的屏幕上被SVG图像替换,而对于搜索引擎来说,它仍然在你的代码中可用(具有相同的SEO权重)。
据我所知,你只能在div和span上使用这些标签。
因此,示例中给出的标题标签将不起作用。(我希望我错了 :P)
这是一个很棒的概念证明。但我个人认为它的用途有点受限。尽管它可能是伟大开端的开始。最棒的是它只使用JavaScript,并且完全是客户端的。
下载文件有点大,但如果它们托管在中央服务器上,人们只需要下载一次脚本。但是,存在明显的版权问题。
还有一些其他替代方案使用PHP和动态图像替换(DTR),例如FLIR(sIFR的变体)和True Font Family(由我自己创建)。
True Font Family完全由CSS配置,并支持旧浏览器中的@font-face。每个解决方案都有其缺点和优点。由你自己选择最适合你需求的方案。
如果你想了解更多关于True Font Family的信息,你可以访问以下网站:http://www.truefontfamily.com。有一个免费版本和一个用于商业用途的专业版本。