2012-01-04 3 views
3

サイトでcufontsを表示するのにTypekit.comを使用していますが、モバイルブラウザ> = 4.2 iOS以上の場合のみ互換性があります。私はjQueryを使用して、訪問者がiOSを使用しているかどうかをテストし、それを元に特定のコンテンツを表示しました(汗はありません)が、より具体的にする方法を考え、CSSのみを修正するバージョンがiOSバージョン4.2よりも低い場合。これを理解できないようだ...どんな助け?iOSバージョンが4.2以上であることを確認し、結果に基づいてCSSを修正してください

+0

私は、これはユーザーエージェントのものを使用して基本的に、助けになると思います。 http://stackoverflow.com/questions/7399534/check-if-ios-version-is-3-0-or-higher-with-php-or-javascript – ToddBFisher

答えて

11

あなたの4.2+スタイルを1つのスタイルシートに入れます。あなたの<を別のものに入れてください。バージョンを確認し、適切なスタイルシートを<head>に追加してください。古いユーザーエージェント文字列をテストする必要がありますが、これはほとんどの場合に有効です。この関数は、 "old"スタイルシートへのフォールバックとして0(iOSでないかどうか、またはiOSでない場合)を返します。

デモ:http://jsfiddle.net/ThinkingStiff/LJrEW/

スクリプト:

var style = ''; 

if(getOsVersion() >= 4.2) { 
    style = '<link rel="stylesheet" href="styles/ios.css" />'; 
} else { 
    style = '<link rel="stylesheet" href="styles/ios_old.css" />'; 
}; 

document.head.insertAdjacentHTML('beforeEnd', style); 

function getOsVersion() { 
    var agent = window.navigator.userAgent, 
     start = agent.indexOf('OS '); 

    if (/iphone|ipod|ipad/.test(agent) && start > -1) { 
     return window.Number(agent.substr(start + 3, 3).replace('_', '.')); 
    } else { 
     return 0; 
    }; 

}; 
+0

代わりに、彼はボディとスタイルにクラスを追加できます別のHTTP往復を避けるために、それに対して – Jeff

+0

@Jeffどうやってさまざまなスタイルを扱うのですか?あなたは違うものすべてのために2つのクラスを作りますか?彼の質問はフォントに関するものなので、うまくいくと思います。 – ThinkingStiff

+0

''であれば、cssファイルの '.ios-4-2'を使ってスタイルを上書きすることができます。すなわち 'p {color:red} .ios-4-2 p {color:blue; } ' – Jeff

1

user-agentを使用すると、デバイスが実行されている特定のバージョンを取得できます。

関連する問題