スタイルシート切り替え
Tag:[]
メイン各ページのスタイルシートを右上のリンクで切り替えられるようにしました。スタイルシートを切り替えるとページ全体のデザインをダイナミックに変更できます。ここでの目的はフォントサイズを変更できるようにするために用いています。とりあえず「Default」「Large」「Netscape」の3種類を用意しました。「Default」は現在のスタイル。「Large」は本文のフォントを大きくします。「Netscape」はNetscape利用者用にサイドバーのフォントを1px大きくしたものです。
注:現在は異なる設定にしています。
この機能はGoing My Wayさんのスタイルシート切り替えスクリプトを参考にカスタマイズしました(こちらのサイト右上のカラーボタンをクリックするとスタイルシートが切り替わります)。オリジナルはStyleswitching JavaScriptです。cookieを利用しているのでブラウザでcookieが利用できる設定になっていれば、最後に利用したスタイルシートが次回ブラウザ起動時に自動的に選択されるようになります。また各テンプレートに設定しておけば状態が引き継がれます。例えば個別アーカイブがマルチカラムでない場合は後述する手順の2・4だけを行えばうまく引き継ぐことができます。
以下、スタイルシート切り替えの手順です。
1.新しいスタイルシートの作成
元のスタイルシートをコピー等して新しいスタイルシートを作成します。ちなみに私の場合はMovable Typeの管理画面上で新しいスタイルシートを作るという作業はしていません。単なるコピーです。ここではStyles-site.cssをコピーしてLarge.cssと、Netscape.cssを作りました(名称は任意で結構です)。
作成したスタイルシートはStyles-site.cssと同じディレクトリに配置します。
まず Large.css 用のテンプレートを作ります。管理画面のテンプレートの「インデックステンプレート」右上にある「新しいテンプレートを作る」をクリックします。次のページで下記を設定します。
- テンプレートの名前:スタイル(Large)
- 出力ファイル名:Large.css
- このテンプレートにリンクするファイル:空白のまま
- 再構築オプション:チェックを外す
テンプレートの中身はスタイルシート(styles-site.css)の内容を丸ごとコピーします。
コピーしたスタイルシートの内容を修正します。Large.css はフォントを大きくするためのものなので、font-size と書かれた部分を大き目のフォントサイズ(赤字から青字)、
.blogbody {
font-size: 12px;
font-size: 14px;
}
に書き換えます。もちろんフォント以外のスタイルも自由に変更して構いません。
修正が終わったら、保存・再構築します。
Netscape.css についても「新しいテンプレートを作る」をクリックし、
- テンプレートの名前:スタイル(Netscape)
- 出力ファイル名:Netscape.css
- このテンプレートにリンクするファイル:空白のまま
- 再構築オプション:チェックを外す
という設定にして、後は Large.css と同じ作業を繰り返してください。
2.テンプレート修正
テンプレート上部にある既存のスタイルシートの設定を、赤色から青色に変更します。
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" title="Default" />
<link rel="alternate stylesheet" href="<$MTBlogURL$>Large.css" type="text/css" title="Large" />
<link rel="alternate stylesheet" href="<$MTBlogURL$>Netscape.css" type="text/css" title="Netscape" />
一番上に書かれたスタイル
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" title="Default" />
が起動時にデフォルトとして選択されるものです。その下に2つの新しいスタイルシート
<link rel="alternate stylesheet" href="<$MTBlogURL$>Large.css" type="text/css" title="Large" />
<link rel="alternate stylesheet" href="<$MTBlogURL$>Netscape.css" type="text/css" title="Netscape" />
をそれぞれ追加しており、以降で説明する切り替え用リンクをクリックすることでこれらのスタイルが選択されます。設定したタグの href 属性に、作成したスタイルシートのファイル名、title 属性に任意の名称を設定します。これが次項のスクリプトで起動される際のキー情報となります。
3.styleswitcher.js のダウンロード・アップロード
下記の公式サイトに styleswitcher.js があります。
記事の下の方に「download」または「Download styleswitcher.js」というリンクがありますので、クリックして styleswitcher.js をダウンロードしてください。そしてダウンロードした styleswitcher.js をそのままローカル・サイト・パス(index.html と同じディレクトリ)にアップロードします。
4.テンプレートに styleswitcher.js インクルードの設定
2項で修正した各テンプレートの <head>~</head> の間に下記を追加します。既にJavaScriptが存在すればそこに埋め込んでも構いません。この行だけ丸々独立させて埋め込んでも大丈夫です。
<script type="text/javascript" src="<$MTBlogURL$>styleswitcher.js"></script>
5.切り替えメニューの追加
各テンプレートのサイドバーに以下のタグを追加します。なおデザイン自体を変更するような使用方法であればタイトルバナー部分に切り替えメニューを設定しているサイトが多いようです。
<div class="sidetitle">
Stylesheet
</div>
<div class="side">
<a href="#" onclick="setActiveStyleSheet('Default'); return false;">Default</a><br />
<a href="#" onclick="setActiveStyleSheet('Large'); return false;">Large</a><br />
<a href="#" onclick="setActiveStyleSheet('Netscape'); return false;">Netscape</a>
</div>
"setActiveStyleSheet" の後ろにあるパラメータは、先に指定した title 属性の名称(Large や Netscape等)と一致するように設定します。
以上です。
6.FAQ
Q:スタイルが反映されませんが?
A:古いデータがキャッシュに残って変更が反映されない場合があるようですのでIEであれば更新ボタンをクリックするか、一時ファイルを削除してください。
Q:表示が崩れました。
A:全てのテンプレートに同じ設定がされていないとページを移動した瞬間やスタイルを切り替えた瞬間に表示が崩れる可能性があります。もし表示が崩れてしまったら、元のスタイルのリンクをクリックするか、きちんと表示できていたページに戻って、スタイルを切り替えれば元に戻ります。
2005.08.12
スタイルシートの作成方法について修正しました(テンプレート)として保存する方法に変更)。また他の内容についても全面的に見直しました。
- YouTube動画にキャプションをつけてテキストを回り込ませる方法
- 画像を下揃えにしてテキストを回り込ませる方法
- style要素にCSSの擬似要素は記述可能か?
- position:relativeを設定すると他の要素がずれる場合の対処
- CSSでタブ切り替えする方法
- :target擬似クラスのまとめ
- CSSでヘッダを固定したスクロールテーブルを作る方法
- レスポンシブウェブデザインで画像を縮小する方法
- disabledなボタンのhoverのスタイルを無効にする方法
- HTML要素を別の要素を基点にしてCSSで絶対配置する方法
- :not擬似クラスでCSS3のサポートをチェックする方法
- :checked擬似クラスでチェックボックスに連動して要素を表示させる方法
- ol要素の入れ子で親の番号を子に割り当てる方法
- チェックボックスやラジオボタンを大きくする方法
- CSSで中央に配置する方法
≫ スタイルシート切り替えを実装 from Simple...
今現在,MovableTypeのテンプレートを [続きを読む]
≫ 文字サイズの変更2 from On The Road
TOPページ以外のページも文字サイズが変更できるようにしました。 TOPページはPHPでスタイルシートの切り替えをしているのですが、その他のページはPHPが... [続きを読む]
≫ スタイルシートの切替。 from 我楽
ここの中の人が最近、老眼が進行してきたようで、私のブログの文字サイズが小さくて読みにくいぞゴルァ(゚Д゚#)と言われてしまったので、小粋空間... [続きを読む]
≫ CSS 切り替え機能つきました from りとろぐらくらく計画(仮)
ゴザ掲示板のほうで、つけたいけどうまくいかない、とか言った矢先になんですが、ついちゃいました。とりあえず2スタイル間の切り替えだけ。もっといいデザインがひらめい... [続きを読む]
≫ ここ数日でしたオイタ from Stupid excuse
ちょこちょこいじくっているんで、自分でもいつやったのか
ドコのサイトを参考にさせ... [続きを読む]
≫ Change site design from END SPEED
スタイルシートをJavascriptで変更できるようにてみた。左上にある■をクリックすると切り替わる... [続きを読む]
≫ HINAGATA iPad mini スタイルシートの切り替え from ネットで稼ぐブロッグ ( ^-^)_$10,000
「HINAGATA SKIN - Boxes hinaPad mini」 の5... [続きを読む]
≫ 再々再々リニューアル from LEFTY HEARTS
またまたまたリニューアルしてしまいました・・・ 今回はスタイル切り替え機能を... [続きを読む]
≫ デザイン変更 from grayish-life
Blogのデザインを閲覧者が選択できるようにしたいと思う。参考にさせていただいた... [続きを読む]
≫ CSS切り替えプロジェクト@ラブログ風味 from Cafe+Luna**(なまえかんがえちゅう)
もうお気づきの方もいると思いますが、
LOVELOG+3columnsのコーナーを大幅に改造しました(・ω・)
ポイントはワンクリックでCSSを入れ替え... [続きを読む]
≫ スタイルシート切り替えを実装 from Simple...
今現在,MovableTypeのテンプレートを [続きを読む]
≫ スタイルシートを切り替えてみる from BEATITUDE
このテンプレートをデザイン、配布している「今日の覚書き」の”もそ”さんが 新しい... [続きを読む]
≫ スタイルシートの切り替え実装 from SecoHanBlog
少し前に、このブログの字が見えづらいというお話を聞いたので、フォントを大きくしていたのだが、私としては中くらいのフォントサイズのほうが見やすいと感じたので、こ... [続きを読む]
≫ ■スタイルシート切り替え。 from Liar's web
はたまた小粋空間さんのところとHINAGATAさんのスキンを使用してみた。まだす... [続きを読む]
≫ 更新 font-size変更アイコン設置 from [ VERSION510 ]
今更ですが、見送っていたフォントサイズ変更アイコンを設置しました。比較的文章が多いhome、about、events、boardに設置してあります。(他はレイア... [続きを読む]
≫ スタイルが切り替わる。 from どぐそ
TITLE: スタイルが切り替わる。
URL: http://www.dj-enzo.net/2007/05/post_15.html
IP: 60.47.34.244
BLOG NAME: どぐそ
DATE: 05/03/2007 03:20:42 AM [続きを読む]
≫ styleswitcher.jsを用いたスタイルシート切り替えにおけるfirefoxでの不具合(?)と対策 from 郷愁マキナ
当サイトでも利用しているstyleswitcher.jsを使ったスタイルシート切り替え機能が正常に動作しない現象を確認したのでここに記しておきます。sty... [続きを読む]
参考にさせて頂きました。
丁寧に書かれていて、非常に分かり易かったです。
ありがとうございます。
>Coplandさん
はじめまして。
参照&コメント、どうもありがとうございました。
最近カスタマイズ記事にtypoが散見されていたため、無事にできホッとしております。
MyBlogList登録させて頂きました。
今後ともよろしくお願い致します。
こんにちは?。今度はこれを真似しちゃいました。ただ、臆病なので(ホントかょ)あんまりすんごいデザインの変化はやめて、フォントの色だけささやかに変わるようにしてみました。デフォルトが青っぽいので、ピンクっぽいのなどを。。。それで、またまた面倒な質問なのですが、月送りカレンダーをインラインフレームで覗かせてるんですけど、このカレンダーのスタイルシートを 同時に切り替えるようにはできないでしょうか?本体とカレンダーを別々にならできそうな気がするんですけど、ピンクをクリックしたら、カレンダーもピンクのスタイルシートになるように・・・できたら素敵なんですけど、ちょっと自分で挑戦してみましたが、できなくてそのままになってます。
>さえらさん
こんばんはー。
記事参照ありがとうございます。
スタイルシート切り替えはJavaScriptで動作していますので、メインページのリンクがクリックされてからstyleswitcher.jsでiframeオブジェクトの中身を操作できれば切り替えは可能かもしれません(推測ですが…)。
またはカレンダーをもうひとつ作って、フレーム自体を切り替えるという手もありそうです。
簡単で恐縮ですがご連絡まで。
( ̄? ̄; )ウーン・・・これは自分でやる自信がないですねぇ・・・
てことで、デフォルトでもピンクでも違和感のないグレイ系のカレンダーにしようかな。
つまり、カレンダーのところは、切り替わらなくてもいいように・・・(逃)
>さえらさん
こんばんはー。
では時間をみて検討したいと思います。
期待しないでお待ちになってくださいませ。
はい、期待しないでお待ちしておりまする。(个_个) ジト????ッ
なぁ???んて。一応、紫とグレーで なにやら良い感じにはできました。
>さえらさん
思いきり期待されているような…(笑)
はじめまして。
こちらを参考にさせて頂き無事にスタイルシートの切り替えができるようになりました。
ありがとうございました。
>Guderianさん
はじめまして。
記事参照くださりありがとうございます。
お洒落なデザインのサイトですね!
それでは今後ともどうぞよろしくお願い致します。
> yujiroさん
カテゴリ整理してたら無用なトラバを送ってしまいました。すみません。削除ってください。m(__)m
>Border.さん
こんにちはー。
承りました(笑)。
新しいスタイルシートができたのか?と思って慌てて見に行きました(笑)。
はじめまして。
css切り替え、真似させていただきました。とてもわかりやすくてよかったです。
ただうちのblog、htmlを弄れないので強引にやったせいか IEではそこそこ動作するのですが、Firefoxでは切り替えても5?10秒ほどでデフォルトのcssに戻ってしまいます(笑)
html弄れないのは辛いです^^;
>GOMAさん
はじめまして。
記事参照ありがとうございます。
こちらのWindows2000+FireFoxでは元に戻らず正常に切り替えられてますよ。
html編集できないというのはかなり辛いですね。
今日は。
先日はあちらでアドバイスありがとうございました。
自己紹介スレにも関わらず質問してしまい、すみませんでした。続きはこちらのほうがいいかと思いまして、こちらでさせて頂きます。
UTF-8にしてみたのですが、フォントサイズの切り替えは出来るのですが、サイトデザインがおかしなことになってしまいます。折りたたみ式にしたメニューバーのフォントまで大きくなるのと、エントリの背景が反転してしまいます。
これはどの辺りをいじれば直る見込みがありますでしょうか。
「切り替えメニューの設定」の部分の一部タグをインクルードしたのが悪かったのかと思い戻したりしたのですが、相変わらずです。
お忙しいとは思いますが、よろしくお願いします。
>カオルさん
こんばんは。
説明不足ですいません。「UTF-8にする」というのはスタイルシートの1行目の
@charset "utf-8";
ではなく、ファイルを保存する時の文字コードを指しています。Windowsであればメモ帳を開いて「名前をつけて保存」で「文字コード」を「UTF-8」を選択して保存します。
スタイルシートの文字コードを確認するには、Firefox で styles-site.css までの URL、例えば
http://asimov.chu.jp/blog/Large.css
と指定してブラウザに表示させた後、ツールバーの「表示」→「文字エンコード」で該当の文字コードが確認できます。
また本文にテンプレートとしてスタイルシートの作り方法を加えました(この方法であれば文字コードは一意になります)ので、そちらでお試しいただいても結構です。
以上です。
それではどうぞよろしくお願い致します。
今晩は。
おっしゃる通りにやってみましたら、出来ました!
なるほど、ファイルそのものにも文字コード指定があるんですね。
また一つ勉強になりました。
ブログを見に来てくれている盲の方は、片目が全くで、もう片方も視力が失せつつあるようです。なので32px~でないときついみたいです。世にあるブログはどれも文字が小さく、見えない見えないと言っていたので、せめて自分のブログくらいは32px表示も出来るようにしようと思いました。
本当に助かりました、ありがとうございます!
>カオルさん
こんばんは。
うまくできたようで良かったです。
文字サイズの件、勉強になりました。
私も検討してみたいと思います。
こんばんは。
この切り替えですが、プルダウンにはできないのでしょうか?
yujiroさん、以前やってた気がするのは
私の勘違いですかね?
>みさとさん
こんばんは。
ご返事が事後になりましたがスタイルシート切り替え(プルダウンメニュー版)に記しました。
こんにちは。
styleswitcher.jsを使わせてもらっているのですが、cookieを有効にしているにも関わらず【更新】したり、ページを切り替える度に2つ目のスタイルになってしまいます。。。
IE6を使ってるのですが、ブラウザの設定が悪いのでしょうか?
>hiroさん
こんばんは。
こちら(Windows IE/Firefox/Opera)で確認したところ、正常に動作しているようです。
ブラウザのキャッシュや一時ファイル、および履歴を一度クリアしてみていただけますでしょうか。
それではよろしくお願い致します。
一時ファイルなど一度削除してみたのですがダメでした。。。
でも、Firefoxで見たら問題なかったし、他のPCのIE6で確認したら正常に動作してたので『今使ってるPCのIEが変!』という事で。。。
確認していただきありがとうございましたm(__)m
>hiroさん
ご連絡ありがとうございました。
もし何か分かりましたら改めてご連絡します。
お役にたてず申し訳ありません。
ではでは!
いつもお世話になっております。このスタイルシート切替をエントリー内のTOP部分のみに紹介文、バナーなどを含めて設置したいと思っているのですが現在、各記事の上に同じように設置されてしまいます。どの部分をどのように修正すればいいのでしょうか?お手数ですがサポート宜しくお願いします。
>panserさん
こんばんは。
ご返事遅くなってすいません。
ご質問の件は解消されたようですが、不具合が継続しているようでしたら再度ご連絡ください。
それではよろしくお願い致します。