スタイルシート切り替え(プルダウンメニュー版)
スタイルシート切り替えをプルダウンメニューで行う方法です。画像のようにプルダウンメニューに表示されたスタイルを選択すると、選択した時点でスタイルが切り替わります。 |
以前よりご紹介しているスタイルシート切り替えのメニュー部分のみの変更ですので、その他の、
- 1.スタイルシート作成
- 2.テンプレート修正
- 3.styleswitcher.js のダウンロード・アップロード
- 4.テンプレートに styleswitcher.js インクルードの設定
につきましてはスタイルシート切り替えの1?4項を参照ください。
ということで、ここでは5項のみ掲載します。
5.切り替えメニューの追加
各テンプレートのサイドバーに以下のタグを追加します。JavaScript によるプルダウンメニューの状態保持を行わない場合と、状態保持を行なう場合の2種類のリストを掲載します。「プルダウンメニューの状態保持」とは、ブラウザの更新や新しくブラウザを開いた時に、それまでに選択されていたプルダウンメニューと同じメニューを表示することを意味します。状態保持を行わない場合は常に一番上のメニュー(ここでは "default")が表示されます。
状態保持を行うとユーザビリティが向上するので、当サイトでは後者(5.2項)を推奨します。
5.1 切り替えメニュー(プルダウンメニューの状態保持を行わない)
下記のリストをサイドバーの任意の位置に追加します。リストはデフォルトテンプレートの場合です。
<div class="module-style module">
<h2 class="module-header">Stylesheet</h2>
<div class="module-content">
<form>
<select name="select" onchange="setActiveStyleSheet(this.form.select.value);">
<option value="Default">default</option>
<option value="Large">Large</option>
<option value="Netscape">Netscape</option>
</select>
</form>
</div>
</div>
option 要素は元エントリーのサンプルに合わせてますので value 属性や値(青色部分)は適宜変更してください。
公開テンプレートの場合は、上記リストを下記のように、赤色部分を削除して青色部分を追加してください。
<div class="module-style module">
<h2 class="module-header">Stylesheet</h2>
<div class="module-content">
<div class="sidetitle">Stylesheet</div>
<div class="side">
<form>
:
</form>
</div>
</div>
5.2 切り替えメニュー(プルダウンメニューの状態保持を行う)
下記のリストをサイドバーの任意の位置に追加します。リストはデフォルトテンプレートの場合です。5.1との差分を青色で示しています。差分は form 要素への id 属性および、状態保持を行う JavaScript です。
<div class="module-style module">
<h2 class="module-header">Stylesheet</h2>
<div class="module-content">
<form id="stylesheet">
<select name="select" onchange="setActiveStyleSheet(this.form.select.value);">
<option value="Default">default</option>
<option value="Large">Large</option>
<option value="Netscape">Netscape</option>
</select>
</form>
</div>
</div>
<script type="text/javascript">
<!--
var style = readCookie('style');
var nodes = document.getElementById('stylesheet').getElementsByTagName("option");
for (var i = 0; i < nodes.length; i++) {
if(nodes[i].value == style){
nodes[i].selected = true;
}
}
//-->
</script>
スタイルシート名(ここでは "Large"や "Netscapte")は5.1項と同様に任意の名称に変更してください。なおこれらを変更しても JavaScript 部分を変更する必要はありません。
公開テンプレートの場合は、上記リストを下記のように、赤色部分を削除して青色部分を追加してください(5.1と同じ)。
<div class="module-style module">
<h2 class="module-header">Stylesheet</h2>
<div class="module-content">
<div class="sidetitle">Stylesheet</div>
<div class="side">
<form id="stylesheet">
:
</form>
</div>
</div>
<script type="text/javascript">
:
- YouTube動画にキャプションをつけてテキストを回り込ませる方法
- 画像を下揃えにしてテキストを回り込ませる方法
- style要素にCSSの擬似要素は記述可能か?
- position:relativeを設定すると他の要素がずれる場合の対処
- CSSでタブ切り替えする方法
- :target擬似クラスのまとめ
- CSSでヘッダを固定したスクロールテーブルを作る方法
- レスポンシブウェブデザインで画像を縮小する方法
- disabledなボタンのhoverのスタイルを無効にする方法
- HTML要素を別の要素を基点にしてCSSで絶対配置する方法
- :not擬似クラスでCSS3のサポートをチェックする方法
- :checked擬似クラスでチェックボックスに連動して要素を表示させる方法
- ol要素の入れ子で親の番号を子に割り当てる方法
- チェックボックスやラジオボタンを大きくする方法
- CSSで中央に配置する方法
こんばんは。
もうほんと、頭があがりません。
一生ついていきます。
本当にありがとうございました。
>みさとさん
こんばんは。
どうぞお気遣いなく。
3ヶ月くらいはついてきてやってください(笑)。
ではでは!