没有JavaScript的有选择性风格的后备字体?

时间:2012-04-19 05:07:26

标签: html css

我见过几种使用JavaScript设计后备字体的方法:one by Google & Typekit, for example,但我很好奇是否有任何方法可以在没有JavaScript的情况下进行。

例如,我想使用Arial height:10px;,如果用户没有Arial,我想使用Times height:24px;,如果没有,我想使用蓝色圣-serif字体。好吧,这是一个荒谬的例子,但它显示了我想要的一般效果。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

在CSS中无法做到这一点。如果您找到了使用JavaScript的方法,请分享。 (有一种方法可以在IE上获取JavaScript中所有已安装字体的列表,但我不知道有任何跨浏览器的方式。)

请注意,您引用的页面不会设置后备字体样式;相反,它会动态加载一个字体(在你可以做到的范围内,后备字体会失去意义)。

答案 1 :(得分:1)

javascript方法只为每个浏览器提供@ font-face堆栈和正确的URL。

您可以按如下方式使用此堆栈:

font-family:your-google-font-name, arial, helvetica, freesans, sans-serif;

如果在浏览器中禁用了javascript,那么如果没有安装arial,字体将回退到arial,等等 -

不同的高度应该不是问题,因为通常你有后备字体,其行为和外观几乎与原始想要的字体相同。

使用javascript,将其设置为不引人注意是没有问题的。

使用Jasvascript创建一个html className(我更喜欢jQuery):

(function($){

  $(document).ready(function(){

    $('html').addClass('withJS');

  });

}(jQuery));

现在您可以在CSS 中使用或不使用Javascript设置不同的样式。

设置不同的高度,具体取决于实际的字体系列使用(例如在body标签上)

var myFontFamily = $('body').css('fontFamily');

// Log to see whats the name you are working with:
console.log(myFontFamily);

if(myFontFamily == 'your-family-name-here'){
  $('body').css({fontSize: '20px' });
} else {
  // do something else...
}