ホームページを運用している際に、スマホからのアクセスと、PCからのアクセスで適用するデザイン(スタイルシート)を変えたいと思うことは多いと思います。
自動的に切り替えるページのサンプルをご紹介します。
パソコンかスマホからのアクセスを判別して、スタイルシート(CSS)を変えるHTMLファイルとJavascriptのファイルです。
ついでにViewportの設定もPC向けとスマホ向けで若干設定を変更します。
なお、あらかじめ、パソコン向けのスタイルシートとして「css_pc.css」というファイル、スマホ向けのスタイルシートとして「css_sp.css」というファイルがある前提で記載します。
index.html の中身
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<meta http-equiv="Content-Language" content="ja">
<script type="text/javascript" src="script.js"></script>
<SCRIPT> auto_css(); </SCRIPT>
<title>ホームページ</title>
</head>
<body>
:
:
</body>
</html>
// 共通変数
var SP_or_PC = 0; // チェック後、PCの場合は0 ・スマホの場合は1が変数に格納されます
function auto_css()
{
check_pc_sp();
if ( SP_or_PC == 1 )
//スマートフォンからのアクセスの場合
{
document.write('<meta name="viewport"
content="target-densitydpi=device-dpi, width=655px, maximum-scale=1.0,
user-scalable=yes">\n');
document.write('<link rel="stylesheet"
href="css_sp.css" type="text/css" />\n');
}
else // PCからのアクセスの場合
{
document.write('<meta name="viewport"
content="target-densitydpi=device-dpi, width=850px, maximum-scale=1.0,
user-scalable=yes">\n');
document.write('<link rel="stylesheet"
href="css_pc.css" type="text/css" />\n');
}
}
// スマホかPCを判別して、変数に設定する
function check_pc_sp()
{
// ユーザーエージェントの取得(小文字にしておく)
var userAgent = window.navigator.userAgent.toLowerCase();
// スマホかPCを判別
SP_or_PC = 0;
if ( userAgent.indexOf('iphone') != -1 )
SP_or_PC = 1;
if ( userAgent.indexOf('ipod') != -1 )
SP_or_PC = 1;
if ( userAgent.indexOf('android') != -1 )
SP_or_PC = 1;
if ( userAgent.indexOf('mobile') != -1 )
SP_or_PC = 1;
if ( userAgent.indexOf('windows phone') != -1 )
SP_or_PC = 1;
}
以上です。