Twitter、Facebookをフォローしている人はお分かりだと思いますが、今日は一日中iOSとAndroidの対応に追われていました。
そこでイロイロと勉強になったのでメモエントリ。
まずはiOSとAndroidをユーザーエージェント判別して、それぞれを違ったCSSで制御するというもの。
ユーザーエージェントの判別はサーバでやってもいいんですが、今回は手っ取り早くJavaScriptでやってみました。
別々のCSSと言っても大きく変えることは少なくて、一部だけ微妙にCSSを変えたい事が多いので、ユーザーエージェントを判定してbodyにclassを設定して対応。
$(function(){ var agent = navigator.userAgent,ua = ''; if(agent.search(/iPhone/) != -1){ ua = 'ios' }else if(agent.search(/iPad/) != -1){ ua = 'ios' }else if(agent.search(/Safari/) != -1){ ua = 'safari' }else if(agent.search(/Android/) != -1){ ua = 'android' }else if(agent.search(/MSIE/) != -1){ ua = 'ie' } if(ua) document.querySelector('body').setAttribute('class',ua) })();
実際、今回の案件で使ったのはiOSとAndroidの判別だけだったのですが、Safari、IEも判別できればもうちょっと便利かなと。
それ以外はここを見て共通ワードを見つけて書き換えればいろいろ対応できると思います。
これで<body>が<body class=”ios”>のように追加されるので、それに応じてCSSを書けばOK。
それにしても検証機が多すぎてメンドクサすぎる・・・。