有没有办法为CSS中的后备字体指定不同的字体大小?我想做这样的事情(显然不起作用):
div {
font-family: "Arial Narrow", Arial, Helvetica, sans-serif;
font-size: 20px, 18px, 18px, 18px;
}
如果用户安装了Arial Narrow,那么Arial Narrow会显示为20px;如果没有,浏览器将以18px的速度回落到Arial,然后是18px的Helvetica,等等 .
或者,我可以使用JS来实现类似的效果吗?
4 回答
我明白你想要什么,但我认为你的问题的答案是“不,这不能在CSS中完成”,至少在CSS2 afaik中没有 .
希望有人可以证明我错了,因为我也想要这样:D
我想JS可以做到这一点,至少在某种程度上 . 不确定是否“安装了这个字体?” JS中的方法,但您可以根据操作系统等进行一些有根据的猜测 . 没有经验抱歉 .
编辑:一些快速的谷歌搜索确实提供了一些聪明的JS技巧,虽然我还没有尝试过 . 例如 . http://remysharp.com/2008/07/08/how-to-detect-if-a-font-is-installed-only-using-javascript/
另一个编辑,经过一些搜索:我被"someone should propose it":D触发 . 似乎CSS3规范有"font-size-adjust",这可能在这里使用 . 但是,在我写这篇文章时,支持Firefox以外的浏览器可能不是最佳选择 . 这是该房产的W3字:http://www.w3.org/TR/WD-font/#font-size-adjust
我有一个使用CSS3字体的相关问题,显然在IE6-8中不起作用 . 后备字体(Arial)比默认字体大得多 . 以类似于mVChr的方式绕过它但通过检测浏览器 . 真的不是很好,但是必须支持IE的乐趣 . 代码(使用jQuery):
使用Javascript,您可以使用大写“A”创建 Span . 如果安装了Arial Narrow,则其宽度为11px,否则宽度将大于11px . 您可以检查此范围,然后隐藏它以确定您已安装的内容 .
如果某些浏览器缺少Arial Narrow,那些浏览器通常会接受@ font-face网址
@ font-face我发现除了IE8 / IE9之外的所有常见浏览器都有效,如果vista没有Arial Narrow,例如我使用新的字体大小的IE8的后卫CSS