JavaScriptを使わずにページのCSSを切り替える
2006年08月28日
ページのデザインを利用者好みにカスタマイズできるように、javascript を使い、CSSを切り替えることでデザイン変更できるサイトがありますが、
JavaScriptオフでも同様のことを実装したい場合のサンプル。
JavaScriptを使わずに、PHP+クッキーを使ってページのCSSを切り替えてみましょう。
PHPの知識がなくても、次のサンプルを使えば簡単に誰でもCSSを切り替えることが出来ます。
次のサンプルは、main.css , blue.css , red.css , pink.css というCSSを切り替えたい場合のサンプルです。
(1) まずは、レイアウトを保存するクッキー設定用のPHPスクリプト( index.phpとして保存 )
<?php
$valids = array(
"main", "blue", "red", "pink"
);
$layout = (isset($_REQUEST["layout"])) ? $_REQUEST["layout"] : "main";
if (in_array($layout, $valids)) {
setcookie("layout", $layout, time()+24*3600*30, '/');
}
$ref = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : "/";
header("Location: $ref");
?>
このスクリプトを、サーバ上の /switch/index.php というパスに設置しておきます。
そして、 http:// ? /switch/?layout=blue のようにアクセスすることで、レイアウト用のクッキーを30日間保存できます。
クッキーを保存した後は、リファラを見て、元来たページに戻ります。単なるクッキー設定用のURLです。
※上記サンプル例では、main, blue, red, pink が有効なcss名として定義されていますが、追加/編集することで自由に切り替えが可能です。
(2) 次に、CSSを動的に読み込むHTML画面 ( php ファイル )
<?php
$layout = (isset($_COOKIE["layout"])) ? $_COOKIE["layout"] : "main";
?>
<html>
<link rel="stylesheet" type="text/css" href="/css/<?php echo $layout; ?>.css">
<body>
<a href="/switch/?layout=blue">青のレイアウトに変更</a><br>
<a href="/switch/?layout=pink">ピンクのレイアウトに変更</a><br>
<a href="/switch/?layout=red">赤のレイアウトに変更</a><br>
</body>
</html>
クッキーからレイアウト用の値を読み、クッキーの値によってCSSを読み込むようなHTMLを出力するPHPファイルになっています。
CSSが動的に変わることで、レイアウトも動的に変更できるというわけですね。
特に難しいスクリプトではないので実装は容易でしょう。
PHPが分かる人にとっては当たり前のようなサンプルになってしまいましたが、デザイナーの方などが使う分には便利かも。
参照
Build your own PHP style sheet switcher | 456 Berea Street
関連エントリ
MovableTypeのPHP化をhtaccessで行う
投稿者 KJ : 2006年08月28日 07:03
|
![]()
間違いの指摘をしていただける方はメールでお願いします
最新のブログ記事
- 小学生が書いたみたいな手書きフォント「りゅうのすけ」
- フリーのハイクオリティアイコン集「Dellipack 2」
- 非常に美しいWordPressテーマ「Outdoorsy」
- 独自の分野でインターネットの最先端を走りませんか?株式会社クレッシェンドをインタビュー
- 2008年10月7日 管理人のブックマーク
- PHPを使ってミニブログを作るチュートリアル
- おいしそうな青りんごを1から作るPhotoshopチュートリアル
- 青ベースの綺麗なサイトデザイン集
- 2008年10月6日 管理人のブックマーク
- SymfonyでのWeb開発に役立つFirebug拡張「FireSymfony」
- GoogleWebToolkit用PHP5フレームワーク「GwtPHP」


















