次のような HTML を実行できます。
<body class="red">
<p>Some text</p>
<a href="#" id="paint-blue">paint blue</a>
<a href="#" id="paint-red">paint red</a>
</body>
CSS:
body.red {
background-color: red;
}
body.red p {
color: yellow;
}
body.blue {
background-color: blue;
}
body.blue p {
color: white;
}
/* Some more stuff */
JS:
$("#paint-blue").click(function(event) {
event.preventDefault();
$("body").removeClass("red").addClass("blue");
}
$("#paint-red").click(function(event) {
event.preventDefault();
$("body").removeClass("blue").addClass("red");
}
トップレベルbody
要素のクラスに応じて、ページ上の一部の要素のスタイルが異なるという考え方です。
編集:リンク先のサンプルページは、Cookie を使用して選択したテーマを保存し、その外観から、常に黄色のテーマをロードし、一部のonload
JS が Cookie の値をチェックして色を変更します。 これは、 JSを使用して Cookie を設定および読み取るためのランダムなチュートリアルです。そして、onload
事は次のようになります:
$(document).ready(function() {
// Should be easy to write if you look at the tutorial
var colour = getColourFromCookie();
if (colour == 'blue') {
$("#paint-blue").click();
}
// red is default, no need to do anything
});
サンプル サイトよりも優れている点の 1 つは、常に 1 つのバージョンをレンダリングしてからクライアント側で変更するのではなく、Cookie の値に応じて別のページ (別のボディ クラス) をレンダリングできることです。少なくとも私のコンピューターでは、 JS が作動して色を変更するまでの明らかな遅延。