实际上,Safari并没有提供所使用的字体,至少在我看来,无论是否安装了Safari,Safari始终会返回堆栈中的第一个字体。
font-family: "my fake font", helvetica, san-serif;
假设已安装/使用过Helvetica,您将获得:
Safari(我相信其他Webkit浏览器)中的“我的假字体”。
Gecko浏览器和IE中的“我的假字体helvetica,san-serif”。
Opera 9中的“ helvetica”,尽管我读到他们正在Opera 10中对其进行更改以匹配Gecko。
我通过了这个问题,并创建了Font Unstack,它测试堆栈中的每种字体并仅返回第一个已安装的字体。它使用@MojoFilter提到的技巧,但是如果安装了多个,则仅返回第一个。尽管它确实遭受了@tlrobinson提到的弱点(Windows将用Arial代替Helvetica并报告已安装Helvetica),但它还是可以正常工作的。