[CSS]IE6でもそれなりに、CSS3で実装するツールチップのチュートリアル
Post on:2011年5月10日
画像を使用せずに、スタイルシートで吹き出し状デザインのツールチップを実装するチュートリアルを紹介します。
IE6/7でも動作し、デザインもそれなりに保たれています。
[ad#ad-2]
ツールチップのベストビューはCSS3をサポートしているブラウザで、キャプチャはChromeです。
デモページ
※Chromeでのキャプチャ
ツールチップはIE6/7にも対応しており、期待通り動作します。
デモページ
※IE7でのキャプチャ
ただし、IE6/7ではツールチップのデザインが、吹き出しではなく矩形になります。
IE7でのツールチップのデザイン
※IE6も同様のデザインです。
[ad#ad-2]
ツールチップの実装
HTML
ツールチップはインライン要素に設置が可能です。
<a href="#" class="tooltip"> your text <span>Your tooltip description</span> </a>
CSS
ツールチップの吹き出し風のデザインはCSS3で実装します。CSS3非対応ブラウザは矩形で表示されます。
吹き出し風デザインの実装イメージ
.tooltip { position: relative; background: #eaeaea; cursor: help; display: inline-block; text-decoration: none; color: #222; outline: none; } .tooltip span { visibility: hidden; position: absolute; bottom: 30px; left: 50%; z-index: 999; width: 230px; margin-left: -127px; padding: 10px; border: 2px solid #ccc; opacity: .9; background-color: #ddd; background-image: -webkit-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); background-image: -moz-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); background-image: -ms-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); background-image: -o-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); background-image: linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); -moz-border-radius: 4px; border-radius: 4px; -moz-box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset; -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset; box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset; text-shadow: 0 1px 0 rgba(255,255,255,.4); } .tooltip:hover { border: 0; /* IE6 fix */ } .tooltip:hover span { visibility: visible; } .tooltip span:before, .tooltip span:after { content: ""; position: absolute; z-index: 1000; bottom: -7px; left: 50%; margin-left: -8px; border-top: 8px solid #ddd; border-left: 8px solid transparent; border-right: 8px solid transparent; border-bottom: 0; } .tooltip span:before { border-top-color: #ccc; bottom: -8px; }
JavaScript
スクリプトは、IE6のホバー対策に使用します。
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript"> $(function() { if ($.browser.msie && $.browser.version.substr(0,1)<7) { $('.tooltip').mouseover(function(){ $(this).children('span').show(); }).mouseout(function(){ $(this).children('span').hide(); }) } }); </script>
sponsors