如何将外部字体文件加载到HTML文档中。
示例:使用HTML、CSS和/或JavaScript,将文本“blah blah blah blah blah blah blah”设置为位于同一目录中的TTF文件的自定义字体。
看一下这个A List Apart的文章。相关的CSS代码如下:
@font-face {
font-family: "Kimberley";
src: url(http://www.princexml.com/fonts/larabie/kimberle.ttf) format("truetype");
}
h1 { font-family: "Kimberley", sans-serif }
上述代码适用于Chrome/Safari/FireFox浏览器。正如Paul D. Waite在评论中指出的那样,如果将字体转换为EOT格式,则可以使其在IE浏览器上工作。
好消息是,在旧版浏览器中似乎会逐渐降级,因此只要您知道并接受不是所有用户都能看到相同的字体,就可以放心使用。
Paul Irish有一种方法可以解决大多数常见问题。请参阅他的bullet-proof @font-face文章:
最终变体,可以阻止IE下载不必要的数据,并在IE8、Firefox、Opera、Safari和Chrome中工作,如下所示:
@font-face {
font-family: 'Graublau Web';
src: url('GraublauWeb.eot');
src: local('Graublau Web Regular'), local('Graublau Web'),
url("GraublauWeb.woff") format("woff"),
url("GraublauWeb.otf") format("opentype"),
url("GraublauWeb.svg#grablau") format("svg");
}
他还提供了一个生成器,可以将字体转换为所需的格式。
正如其他人已经指出的那样,这只适用于最新一代的浏览器。您最好与Cufon等工具一起使用,并且只有在浏览器不支持@font-face
时才加载Cufon。
http://www.w3.org/TR/css3-webfonts/#the-font-face-rule
http://www.css3.info/preview/web-fonts-with-font-face/
这里有许多在不支持@font-face规则的浏览器中可以使用的不同方式。
试试这个
<style>
@font-face {
font-family: Roboto Bold Condensed;
src: url(fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf);
}
@font-face {
font-family:Roboto Condensed;
src: url(fonts/Roboto_Condensed/RobotoCondensed-Regular.tff);
}
div1{
font-family:Roboto Bold Condensed;
}
div2{
font-family:Roboto Condensed;
}
</style>
<div id='div1' >This is Sample text</div>
<div id='div2' >This is Sample text</div>
如果你想要支持比 CSS3 更多的浏览器,可以看看开源库 cufon javascript library。
这里是API,如果你想做更酷炫的东西。
主要优点:允许你做你想要/需要的事情。
主要缺点:在某些浏览器中禁止文本选择,因此在标题文本上使用是合适的(但如果你愿意,也可以在整个网站上使用)。
微软有一种专有的 CSS 方法来包含嵌入式字体 (http://msdn.microsoft.com/en-us/library/ms533034(VS.85).aspx),但这可能不应该被推荐。
我之前使用过 sIFR,因为它非常好用 - 它使用 JavaScript 和 Flash 动态替换普通文本为一些包含所需字体的 Flash 文件(字体被嵌入在 Flash 文件中)。这不会影响文本周围的标记(它通过使用 CSS 类实现),您仍然可以选择文本,如果用户没有安装 Flash 或已将其禁用,则它会优雅地降级到您在 CSS 中指定的任何字体(例如 Arial)的文本。
@font-face
,因此它正在标准化。 (我相信他们也向标准机构提供了他们的专有字体格式。) - Paul D. Waite我没有看到关于Raphael.js的任何参考资料。所以我想在这里加入它。Raphael.js向后兼容到IE5和早期版本的Firefox,以及其他所有浏览器。它在可以使用SVG时使用SVG,在无法使用SVG时使用VML。你可以用它来绘制画布。有些浏览器甚至可以让你选择生成的文本。Raphael.js可以在这里找到:
它可以非常简单,只需创建您的纸张绘图区域,指定字体、字重、大小等,然后告诉它将您的文本字符串放在纸上。我不确定它是否绕过了许可问题,但它正在绘制文本,所以我相当肯定它确实规避了许可问题。但是请与您的律师核实。