CSS の background 画像にツールチップを表示するテクニック
CSS の background プロパティで設定した画像にマウスをポイントした時、img タグに title 属性(または alt 属性)を指定した時のようにツールチップを表示させる方法です。*1
これは mixi の「小粋なユーザコミュニティ」の質問「ブログのタイトルバナー画像に alt 属性は設定できますか?」の回答です。*2
CSS の background 画像に alt 属性を設定することはできませんが、同様の機能を実現することは可能です。
とりあえず img 要素を用いた画像と、div 要素に background 指定した画像のサンプルを用意しましたのでお試しください。
右クリックすれば異なる設定であることがお分かりになると思いますが、いずれの画像もマウスをポイントするとツールチップを表示するようにしています。
img 要素 + alt 属性のサンプル
div 要素 + background 指定のサンプル
ということで回答です。
background 指定の画像は、画像を設定した元の HTML タグに title 属性を設定することでツールチップを表示させています(青色部分)。
HTML
<div id="logo" title="This is Movable Type logo."></div>
CSS
#logo {
width:120px;
height:60px;
background: url(http://path/to/images/logo.gif) no-repeat;
}
サンプルは div 要素を用いましたが、title 属性が設定可能なタグであればツールチップの表示が可能と思われます。また画像を表示しなくても、例えばテキストにマウスをポイントしてもツールチップは表示されます。
参考サイト:RE: [css-d] ALT attributes in CSS background images
2006.09.18 追記
*1、*2 を追加しました。
2006.09.21 追記
「alt 属性= ツールチップ表示」という誤解を招くため、タイトル変更しました。
*1:alt 属性は、画像が表示されない場合の代替テキスト表示が本来の目的で、ツールチップ表示はブラウザ依存です(エントリー投稿以前よりその認識はありましたが説明不足でした)。例えば img 要素を Mozilla 系ブラウザ(Firefox 等)や Opera で表示する場合、title 属性を設定しないとツールチップは表示されません(サンプル(上)は title 属性も設定しています)。
*2:質問自体はツールチップ表示を期待されたものであるかどうかは定かではありません(私の一方的な解釈です)。「代替テキスト表示」が目的であれば解決するための内容はありません。
- YouTube動画にキャプションをつけてテキストを回り込ませる方法
- 画像を下揃えにしてテキストを回り込ませる方法
- style要素にCSSの擬似要素は記述可能か?
- position:relativeを設定すると他の要素がずれる場合の対処
- CSSでタブ切り替えする方法
- :target擬似クラスのまとめ
- CSSでヘッダを固定したスクロールテーブルを作る方法
- レスポンシブウェブデザインで画像を縮小する方法
- disabledなボタンのhoverのスタイルを無効にする方法
- HTML要素を別の要素を基点にしてCSSで絶対配置する方法
- :not擬似クラスでCSS3のサポートをチェックする方法
- :checked擬似クラスでチェックボックスに連動して要素を表示させる方法
- ol要素の入れ子で親の番号を子に割り当てる方法
- チェックボックスやラジオボタンを大きくする方法
- CSSで中央に配置する方法
≫ img 要素の扱いと alt 属性 from SOL
ツールチップと alt 属性。ツールチップを表示させたいなら title 属性か、できればスクリプトを使うほうがよりよい、という話。 [続きを読む]