有没有办法测试安装了哪些字体,或者我可以读出所有字体?我想在我们的产品中进行一项调查,看看我可以在项目中使用哪些字体。
答案 0 :(得分:10)
有一个脚本以不同的字体呈现一堆DIV,然后检查生成的DIV是否具有给定字体的正确尺寸。
答案 1 :(得分:3)
答案 2 :(得分:2)
答案 3 :(得分:1)
这是一个list of the most common fonts on windows and mac machines(每个都有图像比较)。我在选择要在项目中使用的字体时使用它。
答案 4 :(得分:1)
通过浏览器确定客户端计算机上的已安装(和可用)字体没有万无一失的方法。
Flash可能允许你这样做,或者可能是一些疯狂的(但写得很有趣)JavaScript,它假设有给定字体的元素大小 - 但是这个脚本可能容易受到客户端设置差异的影响,无论多少它考虑的案例。
我强烈建议您不要使用您提出的调查/部署方法。您将做出一些不可能的决定 - 例如,可接受的可用百分比是多少?如果它是100%,那么当新用户出现时没有这种字体你会怎么做?如果不是,那么您的用户中有多少比较适合降级体验?
您是否考虑过sIFR或仅考虑具有适当alt属性的图像元素?
如果您有特定的印刷要求,可能值得关注这一点:http://blog.typekit.com/。
答案 5 :(得分:1)
您可以使用Flash获取客户端操作系统中安装的字体列表:
var embeddedAndDeviceFonts:Array = Font.enumerateFonts(true);
然后,您可以使用ExternalInterface在Flash和Javascript之间移动此信息。它不需要太多代码。
查看my blog post about it以获取更多信息和a demo implementation。
答案 6 :(得分:0)
没有好办法做到这一点。虽然如果你有一个你想知道的字体列表,创建一个总是存在回退的类:
span#knownfont{font-family:Verdana, font-size:12px;}
span#font1{font-family:NonExistingFont1, Verdana, font-size:12px;}
span#font2{font-family:NonExistingFont2, Verdana, font-size:12px;}
...
Then create HTML for each case:
<span id="knownfont">Lorem ipsum dolor sit amet</span>
<span id="font1">Lorem ipsum dolor sit amet</span>
<span id="font2">Lorem ipsum dolor sit amet</span>
然后编写一个脚本,比较已知font-span和其他每个字体的宽度。如果宽度不同,则字体存在于客户端上。
答案 7 :(得分:0)
我知道所有浏览器都不支持它,但是如here所描述的那样在css中有@ font-face,所以如果你知道你的用户在IE上(例如)你可以用它来获取字体。