Top >
JavaScript
> ブログタイトルを分割してCSSで異なるスタイルを設定する
2006年5月 8日
ブログタイトルを分割してCSSで異なるスタイルを設定する
ブログタイトルは Movable Type/Serene Bach 等のブログツールや FC2ブログ/Seesaa ブログ等のブログサービスに関わらず、HTMLページとしては概ね下記のようなマークアップが生成されます。
<h1><a href="?">First Weblog</a></h1>
つまりこのブログタイトルは、ツールがHTMLを自動生成するため、文字の途中にHTMLタグを埋め込んで任意のスタイルを設定する、というようなことができません。
このエントリーでは、ブログタイトルを2分割して前半と後半で異なるスタイルを設定可能にするカスタマイズをご紹介します。このカスタマイズを行うことでスクリーンショットのように「First Weblog」という文字に対して、「First」と「Weblog」に異なるスタイルを設定することができます。 |
1.スクリプトの追加
必要なテンプレートに下記のスクリプトを追加します。挿入位置は任意ですが、必ず h1 タグよりも後方に挿入してください。
<script type="text/javascript">
//<![CDATA[
var number = 5;
var title = (document.getElementsByTagName('h1'))[0].childNodes[0].innerHTML;
(document.getElementsByTagName('h1'))[0].childNodes[0].innerHTML =
'<span class="titleA">' + title.toString().substring(0,number) + '</span>' + '<span class="titleB">' + title.toString().substring(number) + '</span>';
//]]>
</script>
赤色の数字は分割する任意の文字数を設定します。「5」の場合は最初の5文字と残りの文字に分割します。全角・半角それぞれ1文字を「1」として計算してください。Windows のIE/Firefox/Opera では全角・半角混合のタイトルでも正常に分割することを確認しています。
2.スタイルの追加
スタイルシートに下記の設定を追加します。
.titleA {
color: #ffffff;
}
.titleB {
color: #000000;
}
titleA が文字前半、titleB が文字後半のスタイルに対応します。上記は文字色のみの設定ですが、フォントやフォントサイズ等の各種文字装飾を追加すれば、バリエーション豊かな表示が可能になります。
3.タイトルを 3 分割する
1項のスクリプトを下記のように修正します。追加部分を青色で示していますが、そのままコピーしてください。
<script type="text/javascript">
//<![CDATA[
var number1 = 3;
var number2 = 6;
var title = (document.getElementsByTagName('h1'))[0].childNodes[0].innerHTML;
(document.getElementsByTagName('h1'))[0].childNodes[0].innerHTML =
'<span class="titleA">' + title.toString().substring(0,number1) + '</span>' + '<span class="titleB">' + title.toString().substring(number1,number2) + '</span>' + '<span class="titleC">' + title.toString().substring(number2) + '</span>';
//]]>
</script>
スタイルシートも追加します。
.titleA {
color: #ffffff;
}
.titleB {
color: #000000;
}
.titleC {
color: #ff0000;
}
2007.01.10 追記
3項を追加しました。
Posted by yujiro
- dtree のサブカテゴリーリストにブログ記事タイトルを表示する for Movable Type
- Movable Type 4.1/MTOS のネイティブタグで dTree を実装する
- コメント投稿フォームの「情報を保存する」のチェックを外した時の振る舞いを変更する
- Parallax Backgrounds で背景画像のスクロール速度を変える
- Lightbox JS/Litebox で BlogPet を背景画像の下に隠す
- prototype.js と pngfix.js の競合を解消する
- JavaScript の for 文のパフォーマンスを改善する
- Google マップの貼り付け用 HTML を valid にする
- Movable Type 4 の透過 PNG ロゴを IE6 以下のブラウザで透過する
- ツリー表示 JavaScript 「dTree」詳解
- dTree によるサブカテゴリーリスト for Movable Type
- HighSlide JS と prototype.js の競合を解消する
- HighSlide JS の onclick 属性を JavaScript で登録する
- Slider によるフォントサイズ変更でアクセシビリティを向上させる
- コメント投稿時にフォームボタンをグレーアウトする for Movable Type
- Slider の利用方法
- Highslide JS でサムネイル画像を拡大表示する
- JavaScript で文字をトリミングする(改善版)
- JavaScript で文字をトリミングする
- BlogPeople 等のリンクリストによる表示の遅延を解消する(その1:JavaScript編)
トラックバックURL
コメント
Yujiroさん、
タイトルの真ん中の文字だけを違う色に指定する場合はどうすれば良いのでしょうか?つまり、始めと真ん中と終わりと3分割ということになります。ただし、始めと終わりの文字色は同じで構いません。
[1] Posted by kunio : January 10, 2007 9:48 AM
>kunioさん
こんばんは。
ご質問の件につきましては3項を追加致しました。参考になれば幸いです。
[2] Posted by yujiro : January 11, 2007 11:25 PM
コメントする
このエントリーでは、ブログタイトルを2分割して前半と後半で異なるスタイルを設定可能にするカスタマイズをご紹介します。

