エントリー本文
CSSでエントリータイトルに画像を表示する
以下カスタマイズ方法です。なお、リスト形式(ul - li)で画像を表示する場合はリストマークの画像のずれを修正するを参照ください。 |
1.テンプレートの修正
Movable Type の公開テンプレートではエントリータイトルを下記のように設定しています(分かりやすくするために一部省略しています)。
<h3 class="entry-header">●<$MTEntryTitle$></h3>
<$MTEntryTitle$> が実際にはエントリータイトルに変換されます。「●」は私が勝手につけたもので、エントリータイトルの先頭に付与されます。
この「●」を削除して、
<h3 class="entry-header"><$MTEntryTitle$></h3>
としてください。テンプレートの修正はこれだけです。他のテンプレートをお使いの方は、エントリータイトルを囲むタグに
class="entry-header"
が設定されていればOKです。
この entry-header を利用して次項でスタイルを設定しますが、補足しておくと entry-header という class 属性は不要で、
<h3><$MTEntryTitle$></h3>
として、hx(ここでは h3)タグに直接スタイルを設定することも可能です。ここでは h3 を h2 や h1 に変更する時の利便性を考慮してこのような設定にしていますが、hx タグにスタイルを設定する手法が本来的と思われます(同じ hx に異なるスタイルを設定する場合は class 属性を与えます)。
2.CSSの修正
スタイルシートで、エントリータイトル部分のスタイルを指定する entry-header に青色のプロパティを追加します。公開テンプレートを誤使用でない方も、青色部分のプロパティ設定は同じです。
/* エントリータイトル */
.entry-header {
margin: 15px 0 0;
color: #444444;
font-size: 12px;
font-weight: bold;
padding-left: 17px;
background: url(http://hogehoge/images/image.gif) no-repeat 0px 0.2em;
}
padding-left プロパティはテキストタイトルの左側に余白を作り、そこに画像を表示させるために設定します。
background プロパティで画像を表示させます。後続の設定の意味は下記の通りです。
- url(?)
- 表示させたい画像のURL(background-image)
- no-repeat
- 画像を繰り返さない(指定しないと繰り返し表示されます)(background-repeat)
- 0px
- 画像の左端からの表示位置(background-position)
*単に"0"でもOKですが値を設定する場合を考慮して単位を付与しています - 0.2em
- 画像の上端からの表示位置(background-position)
カッコ内はプロパティを別々に設定した時に対応する名称です。
テキストタイトルのパディングと画像の表示位置は画像サイズによって変動するため、適宜調整してください。"17px" および "0.2em" という値を変えることで微調整できます。
またここでは説明を割愛しますが、画像をエントリーのテキスト全体に背景として表示させることも可能です。
3.非推奨
画像を表示する場合、img タグをテンプレートに設定して
<h3 class="entry-header"><img src="http://hogehoge/images/image.gif"><$MTEntryTitle$></h3>
とする手もありますが、ウェブスタンダード的には
- 文書構造とデザインの混在
- 転送バイト数の増加
の点からお勧めではありません。
具体的には、画像を他の画像に変更したい場合、HTMLに img タグを直接記述していると文書構造を表すHTMLを変更しなければなりません。また、エントリータイトルが同一ページに複数存在する場合、img タグがエントリー数分必要となるため転送バイト数が増加し、僅かですが表示速度のパフォーマンスに影響します。
- コミッショナーの
- CSSでタイトルバナーに画像を表示する
- CSS でヘッダーに画像を表示する for Movable Type 4
- CSS の画像置換で画像にリンクを設定する
- リストマークの画像のずれを修正する
- Web2.0でビジネスが変わる
- Highslide JS でサムネイル画像を拡大表示する
- 背景画像を固定する
- ナビゲーションバー・シンプルタイプ(その2:クリックしたメニューのロールオーバーを保持する)
- CSS の background 画像にツールチップを表示するテクニック
- IE7 で pre 要素が適正に表示されない不具合を修正
- CSS ネガティブマージンで重なった要素のリンクをクリックできるようにする
- CSS でヘッダーに画像を表示する for Movable Type 4
- CSSでブログに影をつける(ドロップシャドウ:Movable Type 4.x 配布テンプレート版)
- Highslide JS でサムネイル画像を拡大表示する(設定方法の変更)
- CSS でブログ本文の画像だけをセンタリングする
- CSS の画像置換で画像にリンクを設定する
- XREA のバナー広告を固定レイアウトのヘッダに表示する
- グローバルナビゲーション(その1:基本スタイル)
- 「追記文章の折りたたみ 2.0」でIE7の不具合を解消する
- サブカテゴリーリストのツリー画像で親カテゴリーのみ異なる画像を表示する
- 公開テンプレートにフッタを追加する(2カラム版)
- CSS の after 擬似要素で回り込みを解除する
- テンプレートカスタマイズ支援ツール Column Resizer
- サイドバーのタイトル背景をカラム幅にあわせて表示する
- 公開テンプレートのサイドバーのカラム幅を変更する
- CSSでブログに影をつける - ドロップシャドウ画像ファイルの作り方
- CSSでブログに影をつける(ドロップシャドウ)
- IE7 の CSS ハック
- CSSでブロックレベル要素をセンタリングする
≫ CSSでエントリータイトルに画像を表示する と、更新マーク from チームニゴイでございます。
いつもお世話になってる小粋空間さんのエントリー「CSSでエントリータイトルに画像... [続きを読む]
お世話になります。こんにちは。
ウチは思い切り悪い例です(^^ゞ
後日修正したいと思います。。。(^O^)
勉強になります(^^ゞ
お世話になります。こんにちは(^O^)
早速やってみました。意外と簡単で助かりました!ありがとうございました。
というわけでエントリーしてトラバさせていただきましたm(_ _)m
>くんぞーさん
こんばんは。
早速のご利用&トラックバックありがとうございました。
説明不足でしたが、くんぞーさんの元の設定からすると、h3 タグに直接スタイルを設定されても大丈夫ではないかと思います。よろしければお試しください。
ではでは!
yujiroさんこんにちは(^O^)
そうですよねぇ(^O^)
更新マークと差し替える方法があれしか思い浮かばなくて(^^ゞありがとうございましたm(_ _)m
>くんぞーさん
こんばんは。
すいません。そこまで読め切れてませんでした。
class 名を変更するのはグッドアイデアですね。
こんにちは(^O^)
yujiroさんにそう言っていただけると安心します(^_^)b
これからもよろしくお願い致しますm(_ _)m
>くんぞーさん
こちらこそ。
ではでは!
いつもお世話になっております
こちらの方法を使わせていただいておりますが
画像をエントリー名の左に載せる際、テキストよりも大きかった場合その分切れて表示されてしまうのですがこれを回避する方法はありますか?
>CHOBIさん
こんにちは。
ご質問の件ですが、貴サイトの場合であれば、.entry-header に height プロパティ、または line-height プロパティを設定すれば大丈夫と思われます。
それではよろしくお願い致します。
エントリータイトルの先頭に画像に表示する方法を紹介します。ここでは公開テンプレート(Movable Type)を用いた説明になりますが、HTMLとCSSの設定による一般的なテクニックですので、どのようなテンプレート(あるいはHTML)でも利用可能です。
