著者より: こんにちは。 ツールチップは、要素 (通常は画像) の上にマウスを移動すると表示される小さな説明テキストです。 今日は、さまざまな方法で HTML でツールチップを作成する方法を見ていきます。
標準ヒントデフォルトでは、title 属性は説明テキストの表示を担当します。 さまざまな要素に使用できますが、通常は、表示内容を説明するための画像にのみ使用されます。
以前の記事の 1 つでは、画像サイズの操作方法を示すためにトラの画像を使用しました。 差し支えなければ、またこの画像使わせていただきます。 したがって、ヒントを表示するには、title 属性を追加し、その中に目的のテキストを記述するだけです。
< img src = "tiger.jpg" title = "これは虎です" > |
1 つの単語または複数の文を含めることができます。 そして、これは次のようになります:
ヒントはホバリング直後ではなく、しばらくしてからスムーズに表示されます。 これはデフォルトの動作です。
このようなツールチップの主な問題は、スタイルを設定できないことです。 この問題を解決するにはどうすればよいでしょうか? 別の方法でヒントを与える必要があります。 では、いくつかご紹介します。
純粋なCSSメソッド画像のヒントを美しく表示できる非常に興味深い方法です。 HTML マークアップは単純です。画像をブロック コンテナーで囲む必要があるだけです。ブロック コンテナーに識別子を割り当てて、後でスタイルで参照できるようにします。
< div id = "tiger" data - name = "Суматранский тигр" > < img src = "tiger.jpg" > < / div > |
ここで唯一わかりにくいのは、data-name 属性です。 これは、それ自体では何もしないいわゆるデータ属性ですが、その値は CSS や JavaScript で使用できるため、場合によっては便利です。 次にこれを見ます。
そこで、まずコンテナのスタイルについて説明します。 相対的な位置決めが必要なのは、ページ全体ではなく、親ブロックを基準にして位置決めが行われるように、説明テキストを含むブロックを絶対的に配置するためです。
#tiger( 位置: 相対; 表示: インラインブロック; )
#虎( 位置: 相対的; 表示: インライン - ブロック; |
ブロックライン表示により、ブロック (および作成するツールチップを含むブロック) がウィンドウの幅全体に広がることがなくなります。 あとはヒント自体を作成するだけです。 CSS では、疑似要素を使用してこれを行うと非常に便利です。 このような:
#tiger:hover:after ( content: attr(データ名); 位置: 絶対; 左: 0; 下: 0; 背景: rgba(5,13,156,.55); カラー: #fff; テキスト配置: センター; フォントファミリー: 筆記体; フォントサイズ: 14px; パディング: 3px 0; 幅: 100%; )
#tiger:ホバー:後 ( 内容: 属性 (データ - 名前); 位置: 絶対; 左: 0; 下: 0; 背景: rgba(5, 13, 156, . 55); 色: #fff; テキストの配置: 中央; フォントファミリー: 筆記体; フォントサイズ: 14px; パディング: 3px 0; 幅: 100%; |
コードはたくさんありますが、複雑なことは何もありません。 #tiger:hover:after セレクターは次のことを意味します。画像のあるブロックの上にマウスを移動すると、after 疑似要素を作成する必要があります (ルールは中括弧内にリストされます)。 content: attr(data-name) プロパティは、ブロックのテキスト値を設定します。 画像ラッパーブロックの data-name 属性に記述されたものと同じになります。
このツールチップは画像上にマウスを移動すると表示されますが、標準のものとは異なり、これは突然行われ、マウスを移動した瞬間に表示自体がすぐに行われます。 この場合、擬似要素ではスムーズな遷移がサポートされていないため、スムーズな遷移を実装することはできません。
方法 2. 純粋な CSS と滑らかな外観ただし、コードをかなり書き直すことで、やはり JavaScript を使用せずに、ツールチップの滑らかな外観を実現できます。
次に紹介する 2 つの効果を自分の目で確認するには、メモ帳または便利なコード エディターを開いて、私の後のすべてを繰り返すことをお勧めします。 確かに、このためにはスタイル ファイルを含める必要がありますが、スタイルは HTML のタグ内に記述することもできます。
したがって、この例のコードは少し異なります。これは、擬似要素を使用しないためです。 そのせいでスムーズな変化を加えることができませんでした。 今回のコードは次のようになります。
スマトラトラ
< div id = "tiger2" > < img src = "tiger.jpg" > < div class = "text" >スマトラトラ< / div > < / div > |
CSS コードには大きな変更は加えられていません。
#tiger2( 位置: 相対; 表示: インラインブロック; ) #tiger2 .text ( 遷移: すべて 0.6 秒; 不透明度: 0; 位置: 絶対; 左: 0; 下: 0; 背景: rgba(5,13,156,. 55); カラー: #fff; テキスト整列: センター; フォントファミリー: 筆記体; フォントサイズ: 14px; パディング: 3px 0; 幅: 100%; 変換:scale(0); ) #tiger2:hover .text (不透明度: 1;)
#タイガー2( 位置: 相対的; 表示: インライン - ブロック; #tiger2.text ( トランジション: すべて 0.6 秒。 変換:スケール(0); #tiger2:hover.text( 不透明度: 1; |
content プロパティのみを削除します。これは、擬似要素でのみサポートされているためです。 スムーズな状態遷移を作成するtransitionプロパティを追加します。 不透明度: 0 を指定すると、ツールチップ ブロックが完全に透明になり、ページ上に表示されなくなります。
ブロック上にマウスを移動するときに、ツールチップを使用してブロックを通常の透明度に戻すだけで十分になりました。 準備ができて。 要素がスムーズに表示されることが確認できます。
css3 を使用すると、別の方法で要素を非表示にすることができます。 たとえば、変換を使用します。 完全な透明度を次のプロパティ:transform:scale(0) に置き換えると、ブロック サイズがゼロに縮小されるため、単純に画面上に表示されなくなります。 画像のあるブロックの上にマウスを移動すると、transform:scale(1) のように通常のサイズを返す必要があります。 この場合、外観効果はさらに美しく見えます。 これは自分の目で見ることができます。
ご覧のとおり、CSS ではツールチップが美しい効果とともにゆっくりと表示されることもあります。
他の方法jQuery はさらに多くの可能性をもたらします。 このライブラリを使用すると、ヒントを表示するコードを自分で記述したり、これをすでに実装しているプラグインを見つけたりすることができます。
たとえば、Bootstrap フレームワークには既製のコンポーネントが多数あり、その 1 つがツールチップです。 これらと同じヒントを作成して使用できるようにするコード例については、フレームワークのドキュメントを参照してください。 Bootstrap 全体を接続する必要はありません。通常は、ツールチップなどのコンポーネントのみを残し、それのみをダウンロードして接続できます。
全体として、今日は CSS でシャープで滑らかな外観を持つ美しいツールチップを作成する方法を説明しましたが、さらに、Bootstrap と jQuery も活用できます。 何でも選んで、面白くて美しいヒントをあなたのサイトに実装してください!
ヴラド・メルジェヴィチ
HTML には、Web ページ上の任意の要素に追加できるグローバルな title 属性がすでにあります。 この属性が存在すると、要素の上にマウスを置くと表示されるツールチップが追加されます。 テキストのフォント、ツールチップのサイズ、およびその外観は通常、オペレーティング システムに依存し、スタイルを使用して変更することはできません。 さらに、多くの開発者は、そのようなヒントがすぐに消えてしまうことに満足していません。 そのため、希望どおりにデザインされた独自のツールチップを作成する方法を探す必要があります。 もちろん、最も一般的な方法はこれですが、場合によっては CSS だけで十分に対応できる場合もあります。
例として写真を選択しましたが、写真の上にマウスカーソルを置くと写真の名前が表示されます。 content プロパティを使用してテキスト出力自体を行い、 attr() を介して何らかの属性からテキスト値を取得します。 残念ながら、 img と組み合わせた場合、コンテンツは期待どおりに機能しないため、写真が要素に挿入され、そこにツールチップ テキストを含む data-title 属性が追加されます。 title 属性を挿入して使用したい誘惑にかられますが、この場合は 2 つのツールチップが同時に表示されます。1 つは「ネイティブ」で、もう 1 つは私たちのものです。 したがって、HTML5 ではこれが許可されているため、独自の data-title 属性を使用します。 したがって、次のコードが得られます (例 1)。
例 1: HTML コード
HTML5 IE Cr Op Sa Fx
CSS のツールチップ
ツールチップのスタイルに移りましょう。 まず、それをまったく表示させる必要があります。 これを行うには、 ::after 疑似要素を使用し、それに content: attr(data-title) を追加します。
Photo::after ( content: attr(data-title); )
photo クラスの要素のコンテンツの後に、data-title 属性のテキストが表示されることがわかりました。これが必要なものです。 ただし、ツールチップはマウス カーソルを写真の上に置いたときにのみ表示されるようにする必要があるため、:hover 疑似クラスも追加します。
写真:hover::after ( content: attr(data-title); )
残っているのは、ツールチップの目的のスタイル、特に位置、背景色、テキスト、フレームなどを設定することだけです (例 2)。
例 2: ツールチップのスタイル
HTML5 CSS3 IE Cr Op Sa Fx
CSS のツールチップ .photo ( display: inline-block; /* Inline-block 要素 */position:relative; /* 相対位置指定 */ ) .photo:hover::after ( content: attr(data-title); / *テキストの表示 */position:Absolute; /* 絶対位置 */ left: 20%; top: 30%; /* ツールヒントの位置 */ z-index: 1; /* ツールヒントを他の要素の上に表示 */ background: rgba ( 255,255,230,0.9); /* 半透明の背景色 */ font-family: Arial, sans-serif; /* フォントファミリー */ font-size: 11px; /* ツールチップのテキストサイズ */ パディング: 5px 10px; /* 余白* / border: 1px Solid #333; /* 境界線オプション */ )
この例の結果を図に示します。 1.
米。 1. ツールチップの種類
ツールチップの位置はカーソルの位置に依存せず、画像上にカーソルを置くと同じ場所に表示されます。 ツールチップを写真の下部に表示して、写真の大部分を覆わないようにすることができます。 スタイルは少し変わります(例 3)。
例 3. 写真の下部にツールチップを表示する
HTML5 CSS3 IE Cr Op Sa Fx
CSS のツールチップ .photo ( display: inline-block; /* Inline-block 要素 */position:relative; /* 相対位置指定 */ ) .photo:hover::after ( content: attr(data-title); / *テキストの表示 */position:Absolute; /* 絶対位置 */ left: 0; right: 0;bottom: 5px; /* ツールヒントの位置 */ z-index: 1; /* ツールヒントを他の要素の上に表示 */ バックグラウンド: rgba(0,42,167,0.6); /* 半透明の背景色 */ color: #fff; /* 文字の色 */ text-align: center; /* 文字を中央に揃えます */ font-family: Arial , sans-serif ; /* フォントの種類 */ font-size: 11px; /* ツールチップのテキスト サイズ */ padding: 5px 10px; /* マージン */ border: 1px Solid #333; /* ボーダーのオプション */ )
この例の結果を図に示します。 2.
米。 2. ツールチップの種類
残念ながら、ツールチップをアニメーション化するために使用できるtransitionプロパティは、擬似要素では機能しません。 したがって、ツールチップが突然表示されても満足する必要があります。 また、IE8 以前のブラウザでは効果がありません。このバージョンは ::after をサポートしていません。 ただし、この疑似要素を :after に置き換えると、ほぼ機能するオプションを取得できます。
レイアウトの達人にとって、この記事で何か新しい発見があるとは思えません。 この投稿は、私と同じように、ユニバーサル ツールチップの作成とスタイル設定に問題を抱えていた初心者のレイアウト デザイナーを対象としています。
最近、小さなブログを作成していたときに、スタイリッシュでありながらシンプルなツールチップを作成するという課題に直面しました。 ツールチップ用に個別の div コンテナを作成したり、純粋な CSS を使用してツールチップを作成したりするさまざまな方法を試した結果、コードが煩雑にならず、ブラウザー間で互換性があり、同時に実装が非常に簡単なユニバーサルなソリューションを見つけました。
この単純な問題を解決する私の方法に興味がある人は、猫の下で尋ねてください。
ツールチップのリンク
リストからすでにお気づきかもしれませんが、私は LESS css プリプロセッサを使用しています。
CSS スタイルとスクリプトを別のファイルに含めました。 また、リンクが 1 つと、ツールチップのコンテナーとなる div ブロックもあります。
HTML5 仕様では、要素またはブロックに関する情報を保存できるデータ属性タイプのカスタム属性の使用が許可されています。 ツールチップのテキストを保存するのはデータ属性です。
リンク
ストレージには data-tooltip 属性を使用します。
HTML は終了しました - スタイルに移りましょう CSS 私は LESS Elements ライブラリを使用しており、皆さんにもお勧めしているので、このフレームワークを使用していくつかのプロパティを作成します。
@import "css/elements.less"; #tooltip ( z-index: 9999; 位置: 絶対; 表示: なし; トップ:0px; 左:0px; 背景色: #000; パディング: 5px 10px 5px 10px; カラー: ホワイト; .opacity(0.5); .丸め(5px); )
リストから、最初の行で LE を接続し、div#tooltip ブロックを絶対位置に設定して非表示にしていることがわかります。 次に、ブロックに背景色とテキスト色を与え、角を丸く (5px)、透明度の値を 50% に設定します。
$.jQuery(document).ready(function() ( $("").mousemove(function (eventObject) ( $data_tooltip = $(this).attr("data-tooltip"); $("#tooltip") .text($data_tooltip) .css(( "上" :eventObject.pageY + 5, "左" :eventObject.pageX + 5 )) .show(); )).mouseout(function () ( $("#tooltip) ").hide() .text("") .css(( "top" : 0, "left" : 0 )); )); ));// 準備完了。
ここで、data-tooltip 属性を持つすべての要素を選択範囲に追加し、目的の要素にマウスを置くと、ツールチップの値を取得して変数に保存します。 次に、#tooltip ブロックにヒント テキストを追加し、ページの端からのカーソル座標 + 5 ピクセルを指定して、最後に適切な場所にツールチップを含むブロックを表示します。 マウスが要素から離れた後、#tooltip ブロックを非表示にし、その内容をクリアして 0;0; に戻します。
それだけです!
その結果、次のようなものが得られます。
この単純なスクリプトのおかげで、data-tooltip 属性を持つページ上のすべての要素がツールヒントを受け取ります。
ご清聴ありがとうございました!
HTML ツールチップは、Web ページの特定の要素の上にマウスを置くと表示される追加情報を含むブロックです。 今日は、HTML と CSS を使用して独自のツールチップを作成します。
デモを見る | ソースコードをダウンロードするリンク、タグ、スタイル付きテキストなど、ほとんどの要素に CSS ヒントを使用できるようになります。 要素にいくつかのクラスを適用し、ツールチップ テキストを含む data- 属性を追加する必要があります。
ドキュメントのセットアップHTML ドキュメントを作成し、ソース マークアップを設定する必要があります。
ツールチップのデモ // コンテンツ
Normalize.css へのリンクを追加しました。これは、すべてのブラウザーのスタイルをデフォルトにリセットし、すべての要素がすべてのブラウザーで同じように見えるようにするのに役立ちます。 標準の CSS リセットとは異なり、Normalize.css はすべてのデフォルト スタイルを削除しないため、すべての要素のスタイルを最初から書き直す必要はありません。
HTML ツールチップの基本的な例を配置するコンテナー クラスを含む div を作成しました。 body と .container クラスのスタイルは次のとおりです。
body ( font-family: "Work Sans"、sans-serif; font-size: 1.5em; line-height: 1.4em; font-weight: 700; background-color: #28ABE3; color: #fff; ) .container (幅: 800px; マージン: 100px 自動; 背景: 放射状グラデーション(400px 250px の円の一番遠い隅、#64BBE0 0%、#28ABE3、#28ABE3 95%); )
margin-left と margin-right を auto に設定して、コンテナーの div を中央に配置しました。 また、ボディセクションにスタイルを追加して、見栄えを良くしました。
背景に小さな軽い CSS グラデーションを追加することにしました。 ブラウザが CSS グラデーションをサポートしていない場合 (これは主に IE 8 および 9 に当てはまります)、背景色はデフォルトの青 (本文セクションの背景色) に戻ります。
ここではアンカー タグを使用して HTML ホバー ヒントを使用しますが、強力なタグや span などの他のインライン要素にクラスを割り当てることもできます。 以下はコンテナ div の内容です。
- ツールチップ下部
- ツールチップ左
リンクに 2 つのクラスを割り当てました。 ツールチップ クラスはツールチップ本体を担当し、2 番目のクラスがその配置を決定します。
HTML ツールチップのテキストを含むカスタム data- 属性も表示されます。
ツールチップクラスの作成以下はツールチップ クラスのコードです。
ツールチップ (位置: 相対; ) .tooltip:after (位置: 絶対; パディング: 8px; ボーダー: 3px ソリッド #fff; ボーダー半径: 8px; 背景色: #1FDA9A; フォントサイズ: .9em; フォントの重み: ボールド; カラー: #fff; コンテンツ: attr(data-tooltip); min-width: 80px; /* 幅: -moz-max-content; */ /* 幅: -webkit-max-content; */ 不透明度: 0; トランジション: すべて .2s イーズインアウト .25s; 可視性: 非表示; z-index: 2; ) .tooltip:hover:after ( 不透明度: 1; 可視性: 表示; )
HTML ホバー ツールチップ自体は疑似要素 :after であり、絶対位置に配置されます。 このため、アンカー要素に相対位置を割り当てる必要があります。 パディング、ボーダー、フォントサイズ、幅などの基本的なスタイルをいくつか追加しました。 content プロパティを詳しく見てみましょう。
これには、カスタム データ ツールチップを保存する値である attr() が含まれており、それをツールチップ自体のテキストの表示に使用します。 data-tooltip の代わりに他の名前を使用できますが、必ず data- で始まるようにしてください。 これらの属性について詳しくは、こちらをご覧ください。
ツールチップ本体の最小幅は 80 ピクセルです。 ツールチップの内容を 1 行に拡張したい場合は、現在コメントアウトされている width プロパティの max-content 値を追加します。 これは実験的な機能であるため、ベンダー プレフィックス -webkit- および -moz- を使用する必要があることに注意してください。
HTML ホバー ツールチップにスライド アニメーション効果を与えるには、transition プロパティを使用します。 値 .25s に注目してください。これは、ツールヒントが表示または非表示になるまでの遅延を指定します。 したがって、誤ってテキストの上にマウスを移動しても表示されません。テキスト上に長時間マウスを移動した場合にのみ表示されます。 また、不透明度を 0 に設定し、可視性を hidden に設定します。 「display: none」は使用できません。 要素が完全に消えて、トランジション効果が表示されないためです。 マウス ポインタを要素の上に置くと、不透明度と可視性が変化します。
結果:
見て
注: CodePen のデモのマークアップとスタイルの一部を変更/削除しました。 最終結果を確認するには、この記事の最後にあるデモを確認してください。
モーションを追加するホバー時に表示/非表示になる HTML ツールチップを実装したので、移動させてみましょう。 アニメーション プロパティはすでに割り当てられています。必要なのは、アニメーションが表示される開始位置と終了位置を設定することだけです。
/*初期ツールチップ位置*/ .tooltip-top:after (bottom: 150%; left: 0; ) .tooltip-bottom:after ( top: 155%; left: 0; ) .tooltip-left:after ( right: 130%; min-width: 100px; ) .tooltip-right:after ( left: 130%; min-width: 100px; ) /*先端位置*/ .tooltip-top:hover:after (bottom: 120%; ) .tooltip-bottom:hover:after ( 上: 125%; ) .tooltip-left:hover:after ( 右: 110%; ) .tooltip-right:hover:after ( 左: 110%; )
この機能を追加のクラスに追加することにしました。 したがって、たとえばクラス .tooltip-left を割り当てると、ツールヒントはテキストの左側に表示され、 .tooltip-top を追加すると、ツールヒントは上部に表示されます。
デモを見る
このデモでは、.tooltip-right クラスを使用しています。 さまざまなクラスを試して使用し、さまざまな HTML ツールチップの位置を定義できます。
三角形の作成ツールチップの最後の要素は、ブロックの片側にある小さな三角形です。 :before 疑似クラスを使用して作成します (:after 疑似クラスはツールチップ自体にすでに使用されています)。 これを 4 つの位置クラスに割り当てて、それぞれの三角形がそれに応じて出力されるようにします。
/** * 三角形 */ .tooltip-top:before, .tooltip-bottom:before, .tooltip-left:before, .tooltip-right:before ( content: ""; 表示: ブロック; 位置: 絶対; border-幅: 7px; ボーダースタイル: ソリッド; ボーダーカラー: rgba(0, 0, 0, 0); 不透明度: 0; トランジション: すべて .2 秒、イーズインアウト .25 秒; 可視性: 非表示; ) .tooltip- top:hover:before、.tooltip-bottom:hover:before、.tooltip-left:hover:before、.tooltip-right:hover:before ( 不透明度: 1; 可視性: 表示; )
要素自体に幅も高さもない場合、境界線に幅を与えることで三角形を作成します。 この場合、フレーム幅は 7 ピクセルに設定されます。 フレームの色が完全に透明であることが非常に重要です。 次のコード スニペットでは、フレームの対応する辺に色を割り当てます。これにより、三角形の形状を定義できるようになります。
潜在的に複雑なユーザー インターフェイス要素に関する追加情報を提供することは、ユーザー フレンドリーでアクセスしやすい Web サイトを開発する Web デザイナーの仕事の非常に重要な部分です。
ページに表示されている情報を超える追加情報を表示するために一般的に使用されるメカニズムの 1 つは、ツールヒント (画面上の特定の要素に関するヒントを表示するためのデザイン要素) です。
CSS と JavaScript を使用した革新的なソリューションは多数ありますが (jQuery などの JavaScript フレームワークの使用の有無にかかわらず)、新しいテクノロジーが長年の技術をどのように揺るがしているかを調べることが役立つ場合があります。
このチュートリアルでは、CSS だけを使用して素晴らしいクロスブラウザー ツールチップを作成する方法を説明します。
ツールチップはすごいですね!略語や頭字語を説明したり、単語の意味を説明したり、何かに関する追加情報を提供したりする必要がある場合、ツールチップはシンプルですが効果的なソリューションです。
画像などの要素の上に表示され、title 属性 (残念ながら Internet Explorer を使用している場合は alt 属性) の内容を表示する小さな黄色のテキスト ブロックから、ツールチップを使用したスクリプトベースの洗練されたソリューションまで、ツールチップは素晴らしいツールですが、デザイン コミュニティではあまり人気がないようです。
ツールチップの効果を高める
ほとんどのブラウザにはツールヒントのデフォルト スタイルがありますが、見た目はあまり美しくありません。新しい技術を備えた急速に進化する標準は、新しいブラウザでのサポートがますます改善され始めていますが、CSS の台頭により、ツールチップ (上記のような退屈なブラウザのデフォルトの代替として機能します) を新しいレベルで作成できるようになりました。ディテールとデザイン。
以前に jQuery ベースのソリューションを使用したことがある場合は、CSS ではできない多くのことが JavaScript では実行できることに気づくでしょう (ツールチップが消えるのを遅らせるなど)。 ただし、CSS を使用して強調表示やスタイル設定を行うことができるため、デザインが改善され、ツールチップを超えた他の優れたデザインに影響を与えることができます。
何しようかこのチュートリアルでは、純粋な CSS を使用してツールチップを作成します。
これは、CSS3 をサポートしていないブラウザ (Internet Explorer 8 以前など) で動作することを意味します。これらのブラウザでは、新しいブラウザほど美しく表示されません。
色、フォント、画像、ツールチップ フレームなどの効果の外観は、エンド ユーザーのコンピュータで使用されているもの (ブラウザ、インストールされているフォント、またはモニタのコントラスト) によって異なります。
CSS3 拡張機能border-radius プロパティや box-shadow プロパティなどのシンプルだが効果的な拡張機能を使用すると、単純なバルーン メッセージの四角形に新しくて美しい外観を与えることができます。
私たちの内部には何があるのでしょうか?例の HTML コードから始めましょう。
さまざまな種類のツールチップ独自のプロジェクトに十分なアイデアを提供するために、5 種類のツールチップを作成します。
表示出力を標準化するために、それぞれは他のものと非常に似ています。 ただし、後で実験して詳細を調べ、外観を変更することができます。
ブラウザ間の互換性このメカニズムはすべてのブラウザで動作するはずですが、必要に応じて好みに合わせて変更できます。
基本的なマークアップ以下のコードでは、通常の要素を持つ XHTML 1.0 汎用テンプレートを使用します。
CSS を使用して要素を構築するため、学習目的のために、CSS は .html を使用してドキュメントに埋め込まれます。
必要に応じて、jQuery または JavaScript コードを追加して、効果や機能を強化することもできます。
HTML マークアップ ツールチップ CSS で作成したツールチップの例!テキストの上にマウスを置くと、古典的なヒント、重要なメッセージが表示されます。 クリティカルポストこれは、CSS を使用してツールチップを作成する方法の一例にすぎません。ヘルプ ヘルプこれは、CSS を使用してツールチップを作成する方法の一例にすぎません。情報 情報これは、CSS を使用してツールチップを作成する方法の一例にすぎません。 そして警告 警告: これは、CSS を使用してツールチップを作成する方法の一例にすぎません。
これは、CSS を使用してツールチップを作成する方法の一例にすぎません。このコードでは、要素 (特に何も関連付けられていません) と段落 (
) リンク要素を含むテキストの場合 (クラス「tooltip」が設定されています)。
ツールヒントにタグが使用されるのはなぜですか? ?abbr 、 dfn 、または scan ではなく a タグを使用する理由は、IE6 では a 以外の要素に対する:hover 疑似セレクターのサポートが不十分であるためです。
IE6 をサポートする予定がない場合は、別のタグを使用できます。
例の各スパン要素は、クラシック クラス (通常のツールチップの場合) またはカスタム (使用されているカラー スキームに一致する critical 、 help 、 info または warning を含む) に設定されます。
このスタイルの使用には、em 要素 (ツールヒントのタイトルを設定します) と画像 (ツールヒントのアイコンとして使用されます。独自の画像を使用できます) の形でいくつかの利点もあります。
CSSページの HTML コードを作成したので、ツールチップに機能を実行させます。
ページのセクションに追加された以下のコードは、ツールチップを含む各リンクを点線の下線が付いた小さなスタイルに設定し (実線の下線が付いた通常のリンクと区別するため)、カーソルを設定します。疑問符が付いています (視覚的に区別するためでもあります)。
また、下線が削除され、色が設定されます (そのため、要素は通常のリンクのように見えなくなります)。
コードの 2 番目の部分は、必要になるまでツールチップを非表示にするだけです。
すべてがとてもシンプルです!
class.tooltip の CSS スタイル .tooltip ( border-bottom: 1px dotted #000000; color: #000000; アウトライン: なし; カーソル: ヘルプ; テキスト装飾: なし; 位置: 相対; ) .tooltip span ( margin-left: -999em; 位置: 絶対; )一部のスクリーン リーダーはこれらのプロパティを無視するため、ツールヒントのコンテンツは、display: none または Visibility: hidden ではなく、負の margin-left プロパティを使用してビューから削除されます。
ツールチップの CSS スタイルまもなく、ツールチップが異なるブラウザーでも同じように機能するようになります。 次に、CSS コードを数行追加してみましょう。
次のコードを追加すると、画面にツールチップが表示されますが、見た目は平凡で、テキストの残りの部分から視覚的に区別するのが難しくなります。
ツールチップを表示するための CSS .tooltip:hover span ( font-family: Calibri, Tahoma, Geneva, sans-serif;position:Absolute; left: 1em; top: 2em; z-index: 99; margin-left: 0; width : 250px; ) .tooltip:hover img ( border: 0; margin: -10px 0 0 -55px; float: left; Position:Absolute; ) .tooltip:hover em ( font-family: Candara、Tahoma、Geneva、sans-serif ; font-size: 1.2em; font-weight: ボールド; 表示: ブロック; パディング: 0.2em 0 0.6em 0; ) .classic ( パディング: 0.8em 1em; ) .custom ( パディング: 0.5em 0.8em 0.8em 2em ; ) * html a:hover (背景: 透明; ) 行が必要です * html上記のコードの最後の行がなぜ含まれているのか疑問に思われるかもしれません。 リンクの背景の透明度を設定します。 ツールチップをテストしているときに、リンクの背景が存在する限り削除できない奇妙な効果が IE6 にあることを発見しました。
上記のコードは、ツールチップの機能を保証します。 これらは画面上に表示されますが、一般的なテキストと区別するのは非常に困難です。 ページ上でツールヒントのテキストを目立たせる配色はありません。
ツールチップの配色を設定/次のコードは、5 つのツールチップ スタイルそれぞれの配色を設定します。
ページのコードを変更してブラウザで更新した後、リンク上にマウスを置くとツールチップがどのブラウザでもほぼ同様に表示されます。
カラースキームの CSS コード .classic (background: #FFFFAA; border: 1pxソリッド #FFAD33; ) .critical (background: #FFCCAA; border: 1pxソリッド #FF3334; ) .help (background: #9FDAEE; border: 1pxソリッド# 2BB0D7; ) .info (背景: #9FDAEE; 境界線: 1px 実線 #2BB0D7; ) .warning (背景: #FFFFAA; 境界線: 1px 実線 #FFAD33; )CSS コードは非常にシンプルですが、ツールヒントの見栄えが良く、あらゆる場所で機能します。 配色はお客様のご判断で変更可能です。
CSS3 を少しいじるだけで高度なツールチップが表示されますこのチュートリアルを終了する前に、ツールチップに視覚効果を追加するための CSS3 コードを数行追加します。 border-radius プロパティを使用して丸い角を設定し、box-shadow プロパティを使用して寸法を追加しましょう。
これらのプロパティはいずれもグローバルにサポートされていないため、ブラウザーの最新バージョンの一部でのみ機能します。 しかし、機能する場所では、ツールチップは洗練されてセクシーに見えます。
以下のコードを selector.tooltip:hover スパンに追加し、ページを更新してみましょう。
境界線、影、透明度の視覚効果により、ツールチップがページ テキストの上に持ち上げられ、情報がコントラストを付けて読みやすくなります。
公式の CSS3 プロパティだけでなく、Mozilla や WebKit の拡張機能も使用されていることに気づくかもしれません。
新しいブラウザ用の追加の CSS プロパティ border-radius: 5px 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; ボックスシャドウ: 5px 5px 5px rgba(0, 0, 0, 0.1); -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); まとめこのチュートリアルでは、インターフェイスの改善にそれほど労力は必要ないことを示します。 さらに、CSS の使用経験を見直す価値があります。これは、Web アプリケーションの対話性の新たなレベルを設定するのに役立ちます。