Eri*_*itz 8 fonts css3 webfonts font-face
我花了几个晚上调查用现代浏览器实现@ font-face的最佳方法.我是一名全职的网络/系统开发人员,具有作为平面设计师的背景,我发现网页设计的机会和可能性变得越来越有趣.所以,我做了一些测试,并想听听是否有人有任何建议,任何更好的想法或输入.我的测试场景看起来像这样.
我用ALOT测试了不同的在线工具和应用程序,但最后我把它归结为一个在线服务和一个应用程序.
我使用了我的Mac,Tamil Sangam MN和Tamil Sangam MN Bold附带的字体,两者都是开放型,.otf.
这是一个很好的在线工具,非常好.有几种不同的模式,我使用了Basic和Optimal.我的.otf文件的输出是svg,ttf,eot和woff.
定期
胆大
我注意到最佳字体的第一件事是它们比基本变体小得多~260 KB!
定期
胆大
这个工具可以做的不仅仅是为网络杂耍字体.它可以在彼此之间转换几种格式; 喜欢opentype,真实类型,网络字体,后期脚本等.结果是整体质量非常高,文件非常大,几乎是FontSquirrels Basic版本的两倍,比FontSquirrels Optimal版本大7倍.
定期
胆大
一开始我感到困惑的是,字体列表中的实际顺序很重要.然后我发现有些人采用了第一种兼容的格式,而不是坚持最佳格式 - 而且很糟糕.经过一些实验,我发现这是格式化css的最佳方式(注意文件类型的顺序| 重要!).
@font-face {
font-family: 'TamilSangam';
src: url('.eot');
src: url('.svg') format('svg'),
url('.eot?#iefix') format('embedded-opentype'),
url('.woff') format('woff'),
url('.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
Run Code Online (Sandbox Code Playgroud)
我用*标记了最好的版本
Firefox MAC(15.0.1)
Firefox Windows(15.0.1)
Safari Mac(6.0)
Chrome Mac(21.0)
Chrome Windows(21.0)
Internet Explorer(9.0)
Firefox MAC(15.0.1)
Firefox Windows(15.0.1)
Safari Mac(6.0)
Chrome Mac(21.0)
Chrome Windows(21.0)
Internet Explorer(9.0)
我通常按以下模式组织我的webfonts,<webfonts>/<转换源>/<转换方法>/<fonts>
/* Regular */
@font-face {
font-family: 'TamilSangam';
src: url('webfonts/fontsquirrel/optimal/tamil_sangam_mn.eot');
src: url('webfonts/fontxchange/TamilSangamMN.svg#TamilSangamMN') format('svg'),
url('webfonts/fontsquirrel/optimal/tamil_sangam_mn.eot?#iefix') format('embedded-opentype'),
url('webfonts/fontxchange/TamilSangamMN.woff') format('woff'),
url('webfonts/fontxchange/TamilSangamMN.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
/* Bold */
@font-face {
font-family: 'TamilSangam';
src: url('webfonts/fontsquirrel/optimal/tamil_sangam_mn_bold.eot');
src: url('webfonts/fontsquirrel/optimal/tamil_sangam_mn_bold.svg#tamil_sangam_mnbold') format('svg'),
url('webfonts/fontsquirrel/optimal/tamil_sangam_mn_bold.eot?#iefix') format('embedded-opentype'),
url('webfonts/fontsquirrel/optimal/tamil_sangam_mn_bold.woff') format('woff'),
url('webfonts/fontsquirrel/optimal/tamil_sangam_mn_bold.ttf') format('truetype');
font-weight: bold;
font-style: normal;
}
Run Code Online (Sandbox Code Playgroud)
结果的图形概述(完整版在http://i.stack.imgur.com/atb98.png)

没有一个工具可以提供在所有浏览器中在Mac和Windows上呈现良好的字体.您必须对每种字体进行实验和测试.上面发布的方法只是一种简单的方法和建议如何测试和试验@ font-face的.
您认为我可以在我的方法或实施中改变什么,是否有任何错过的应用程序或服务?
一切顺利/ T.
您可以添加src: local(\'\xc3\xb2?\'),查找具有此名称的本地字体,强制浏览器忽略本地字体(如果它们碰巧与您的自定义字体同名)。您还可以反过来使用它来限制自定义字体的下载。查看移动支持
我通常会?#iefix在标准.eotsrc 之后看到第二行,尽管我不能说我曾经需要它,也不知道是否需要特定的定位(除了.eot首先列出的之外)。
如果您正在寻找在字体加载失败的情况下对字体进行更多控制,或者在 IE 中处理 FOUC,我有一个 jQuery 插件,它可以让您在加载时隐藏字体,并允许您更改字体size on 失败,这样你的后备字体就不会破坏你的布局。如何知道字体(@font-face)是否已经加载?
\n\n此外,IE6-8 的某些字体的 .eot 文件可能存在问题。这可以通过以下任一方法修复(此处有完整指南):
\n\n好像只与IE和FF有关。所有其他浏览器(仅测试的最新版本)都没有问题。
\n\nCORS 是字体的常见问题,当您从其他域或主机名加载字体时会发生这种问题。这包括使用www或不指定您的站点。代码@font-face需要相对引用,CSS文件也是如此。<base>如果在 html 中定义标签,您也会遇到问题。如果这是不可能的,或者如果您不想担心 CORS,那么您需要将以下代码放入.htaccess字体目录中的文件中:
<FilesMatch "\\.(ttf|otf|eot|woff)$">\n <IfModule mod_headers.c>\n Header set Access-Control-Allow-Origin "*"\n </IfModule>\n</FilesMatch>\nRun Code Online (Sandbox Code Playgroud)\n\n字体服务上的 404 问题可能是由不正确的 MIME 定义引起的,请在此处查看更多信息:WOFF 字体的 Mime 类型?
\n\n移动支持非常糟糕。Android 直到 4.0 才正确支持它,而据我所知,Windows Mobile 根本不支持它。我正在调查任何解决方案或解决方案。到目前为止我最好的方法是使用如何知道字体(@font-face)是否已经加载?在字体加载失败时显示文本图片。这实际上只适用于网站标题和图标,否则这是一个非常糟糕的解决方案,不利于搜索引擎优化和糟糕的用户体验。
\n\n\n\n此外,如果您@font-face使用Android 2.2 - xxx 版本将会失败local(),这也被用作 IE 的修复。如果您想覆盖所有基础,可能需要多个样式表。在这里查看更多信息:/sf/answers/316432721/
#fontName如果您在网址中包含 ,Chrome 将不会使用 SVG 字体。它还会在 SVG 之前使用 WOFF - 并且不能很好地渲染它。这可能就是为什么每个人都对 Chrome 中糟糕的字体渲染感到担忧的原因......为了克服这个问题,需要一个额外的 @font-face 声明:
@media screen and (-webkit-min-device-pixel-ratio:0) {\n @font-face {\n font-family: \'myFont\';\n src: url(\'fonts/myFont.svg\') format(\'svg\');\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2059 次 |
| 最近记录: |