TopCSS > CSSでエントリータイトルに画像を表示する
News
各種ブログテンプレート
2006年5月26日

エントリー本文

CSSでエントリータイトルに画像を表示する

Posted at May 26,2006 1:38 AM
Category:[CSS, エントリー]
Tag:[]

エントリータイトルに画像に表示するエントリータイトルの先頭に画像に表示する方法を紹介します。ここでは公開テンプレート(Movable Type)を用いた説明になりますが、HTMLとCSSの設定による一般的なテクニックですので、どのようなテンプレート(あるいはHTML)でも利用可能です。
本カスタマイズを行うことで、スクリーンショットのようにタイトル左に画像が表示されます。

以下カスタマイズ方法です。なお、リスト形式(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 タグがエントリー数分必要となるため転送バイト数が増加し、僅かですが表示速度のパフォーマンスに影響します。

Posted by yujiro ReTweet This!
関連記事
この記事を読んだ人はこんな記事も読んでいます
人気エントリー
Hatena Hot Entries
Hatena Entries
トラックバックURL


トラックバック

CSSでエントリータイトルに画像を表示する と、更新マーク from チームニゴイでございます。
いつもお世話になってる小粋空間さんのエントリー「CSSでエントリータイトルに画像... [続きを読む]

Tracked on May 26, 2006 5:55 PM
コメント

お世話になります。こんにちは。
ウチは思い切り悪い例です(^^ゞ
後日修正したいと思います。。。(^O^)
勉強になります(^^ゞ

[1] Posted by くんぞー : May 26, 2006 5:15 AM

お世話になります。こんにちは(^O^)
早速やってみました。意外と簡単で助かりました!ありがとうございました。
というわけでエントリーしてトラバさせていただきましたm(_ _)m

[2] Posted by くんぞー : May 26, 2006 5:58 PM

>くんぞーさん
こんばんは。
早速のご利用&トラックバックありがとうございました。
説明不足でしたが、くんぞーさんの元の設定からすると、h3 タグに直接スタイルを設定されても大丈夫ではないかと思います。よろしければお試しください。
ではでは!

[3] Posted by yujiro : May 27, 2006 2:48 AM

yujiroさんこんにちは(^O^)
そうですよねぇ(^O^)
更新マークと差し替える方法があれしか思い浮かばなくて(^^ゞありがとうございましたm(_ _)m

[4] Posted by くんぞー : May 27, 2006 12:52 PM

>くんぞーさん
こんばんは。
すいません。そこまで読め切れてませんでした。
class 名を変更するのはグッドアイデアですね。

[5] Posted by yujiro : May 28, 2006 12:57 AM

こんにちは(^O^)
yujiroさんにそう言っていただけると安心します(^_^)b
これからもよろしくお願い致しますm(_ _)m

[6] Posted by くんぞー : May 28, 2006 12:08 PM

>くんぞーさん
こちらこそ。
ではでは!

[7] Posted by yujiro : May 29, 2006 12:43 PM

いつもお世話になっております
こちらの方法を使わせていただいておりますが
画像をエントリー名の左に載せる際、テキストよりも大きかった場合その分切れて表示されてしまうのですがこれを回避する方法はありますか?

[8] Posted by CHOBI : November 20, 2006 1:33 AM

>CHOBIさん
こんにちは。
ご質問の件ですが、貴サイトの場合であれば、.entry-header に height プロパティ、または line-height プロパティを設定すれば大丈夫と思われます。
それではよろしくお願い致します。

[9] Posted by yujiro : November 21, 2006 11:19 AM

yujiro様、こんばんわ。
そしていろんなところで質問ばかりですみません。
以前はタイトル画像をつけることが出来たのですが、今回は出来ません。
まず、画像の大きさは37×15なので、padding-left: は一応40px;にしました。
位置的には納得したのですが、いろいろなところを削除したりしたのですが、元のテンプレートの縦棒を消すことができません。
そしてこの記事の最初の方で言っているテンプレートの●の削除。
ここが全くわかりません。
正直どのテンプレートをさわれば良いのかから「?」なのです。
完成品としてはpenでサラサラと書いている画像だけをイメージしているのですが、どうすれば良いのでしょうか?
たびたび申し訳ありませんがよろしくお願いいたします。

[10] Posted by tsudku : September 1, 2010 8:04 PM
コメントする
greeting

*必須



ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字 イタリック アンダーライン ハイパーリンク 引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)

Now loading...
Introduction
Entry Trackbacks
CSSでエントリータイトルに画像を表示する と、更新マーク
 [チームニゴイでございます。] 05/26 17:55
Entries of this Category
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.02