2012-04-19 4 views
3

JavaScriptを使用してフォールバックフォントをスタイリングする方法をいくつか見てきましたが、JavaScriptなしで行う方法があれば興味があります。選択的スタイルのフォールバックフォントJavaScriptなし?

たとえば、Arial height:10px;を使用したいと思います。ユーザーがArialを持っていない場合は、Times height:24px;を使用します。そうでない場合は、青いサンセリフフォントを使用します。さて、むしろ不条理な例ですが、それは私が行っている一般的な効果を示しています。

ご協力いただければ幸いです!

答えて

1

CSSで行う方法はありません。あなたがJavaScriptでそれを行う方法を見つけたら、それを共有してください。 (IE上のJavaScriptにインストールされているフォントのリストを取得する方法はありますが、クロスブラウザの方法についてはわかりません)。

あなたが参照するページはフォールバックフォントをスタイルしません。むしろ、フォントを動的に読み込みます(これを行うことができれば、フォールバックフォントは意味を失います)。

+0

を(bodyタグ上の例)異なる高さを設定する

うん、そのリンクは確かに理想的なソリューションではないが、それは一種のビットで動作することになります微調整(大丈夫、多分クロスブラウザーがうまくいけば疑問に思うだろう)。 – DACrosby

1

javascriptメソッドは、@ font-faceスタックと各ブラウザの正しいURLを提供するだけです。

次のようにあなたは、このスタックを使用することができます。

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

をJavaScriptはブラウザで無効になっている場合は、フォントがArialのがインストールされていない場合はhevetivaに、バックのArialに分類されます - など

通常はフォールバックフォントを使用しているため、元のフォントとほぼ同じように見えるため、異なる高さが問題になるはずはありません。

JavaScriptを使用すると、邪魔にならないように問題はありません。

HTML Jasvascriptとクラス名(私はここではjQueryのを好む)作る:

(function($){ 

    $(document).ready(function(){ 

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

    }); 

}(jQuery)); 

今、あなただけのCSSにJavaScriptを使用したりすることなく、異なるスタイルを設定することができます。実際のフォントファミリの用途に応じて、

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... 
} 
+0

「通常、フォールバックフォントが動作してほぼ同じに見える」これは私が克服しようとしている問題です。フォントが十分にない場合や、類似しているフォントが見つからない場合は、あなたのサイト? あなたの例では、ユーザーに表示される「your-google-font-name」とは違って、helveticaをarialとは違ったスタイルにしたいと考えています。 私が間違っていない場合、あなたの方法は、JSが有効かどうかのスタイリングを許可しますが、使用されるフォールバックフォントには依存しません。 また、 '.css(" fontFamily ")'は、使用されているフォントツリーだけでなく、フォントツリー全体を返します。 http://jsfiddle.net/U9uBS/ – DACrosby

+0

あなたは正しいです - 私はそれのための解決策を見つけませんでした。しかし、おそらくこの記事では、Modernizrでどのようにできるかを明らかにすることができます。http://webdesignerwall.com/tutorials/css3-font-face-design-guide - これはブラウザの代替手段ですが、本番システムではこの方向... –

関連する問題