linkerは「人と人」「人と情報」「人と物」をつなぐデザインユニットです。

iPhone用にCSS/PHP/JavascriptでCSSを切り替える基本的な方法

100304.jpg

みなさん、こんにちは、まーしーです
週末の不摂生がたたって唇が荒れるやら口内炎やら。食事がつらくてげんなりなこの頃です。

さて、Webサイトを多メディアに対応させるという話は先日の「webデザインNight!」でも話題にあがっていました。その簡単な例としてiPhoneとPCとで分ける方法を考えてみます。

仕様によってどういう方法でどんなWebサイトにするのかを考える必要がありますが、とりあえずCSS、PHP、JavaScriptの3つで読み込むレイアウトCSSを切り替える、という方法を考えてみます。

CSSのみで切り替える

まずは簡単にCSSだけで切り替える方法です。

<link rel="stylesheet" type="text/css" media="only screen and (max-device-width:480px)" href="./layout/iphone.css"/>
<link rel="stylesheet" type="text/css" media="screen and (min-device-width:481px)" href="./layout/pc.css" />

デバイスの幅を基準に判定してCSSを切り替えています。

PHPで切り替える

次にPHPで切り替える方法です。まずはUAを調べます。

<?php
  $browser = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
    if ($browser == true){
    $browser = 'iphone';
  }
?>

HTMLの最初に記述してUAを判定しておきます。

<?php if($browser == 'iphone'){ ?>
<link rel="stylesheet" type="text/css" href="./layout/iphone.css"/>
<?php }else{ ?>
<link rel="stylesheet" type="text/css" href="./layout/pc.css" />
<?php } ?>

UAがiPhoneならiPhone用のCSSを読み込む、という感じです。

JavaScriptで切り替える

次に、JavaScriptで切り替える方法です。

<script type="text/javascript">
if (navigator.userAgent.indexOf('iPhone') != -1) {
document.write('<link rel="stylesheet" type="text/css" href="./layout/iphone.css">');
}else {
document.write('<link rel="stylesheet" type="text/css" href="./layout/pc.css">');
}
</script>

UAをJavaScriptで判定して読み込むCSSを切り替えています。

ということで

簡単な紹介ですが、本当に基本の基本はこんな感じです。
画像サイズ等々考えないといけないことはWebサイトによって色々ありますが、それはまた別の時にでも。

最低限の対応が必要なときなどの参考程度に。