cssのみのTool Tips

概要

CSSのみでのToolTipsの方法を考えます

HTML

コード
 <html>
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=Shift_jis" />
     <link rel="stylesheet" href="test.css" type="text/css" madia="screan">
 <body>
     <p>CSS Tooltips</p>
     <a href="#" class="tooltips"><font size="-1">Title</font><span>ToolTip</span></a></br> ①
     <p>普通のToolTips</p>
     <a href="#" title="ToolTips"><font size="-1">Title</font></a></br>
 </body>
 </html>

CSS

コード
 a.tooltips font{
 	border-bottom:1px solid blue;
 }
 a:visited.tooltips font{
 	border-bottom:1px solid purple;
 }
 html>body a:active.tooltips font{
 	border-bottom:1px solid red;
 }
 a.tooltips{
 	z-index:10;
 	text-decoration: none;
 	outline:none;
 }
 a:hover.tooltips{
 	position:relative;
 	z-index:10;
 }			
 a.tooltips span{
 	display:none;
 }
 a:hover.tooltips span{
 	display:block;
 	position:absolute;
 	float:left;
 	white-space:nowrap;
 	top:20px;
 	left:20px;
 	background:#fffcd1;
 	border:1px solid #444;
 	color:#444;
 	padding:1px 5px;
 	z-index:100;			
 }
CSS解説
  • a.tooltips
    • z-index:10;
この指定は要素の重なり順をあらわす。数値が大きい方が上に
重なって表示される
    • text-decoration: none;
リンク文字列に下線が表示されないようにする
これを指定しないと、リンク文字列にカーソルを持ってきた時に
表示される"ToolTips"にもリンクの下線が表示されてしまう。よって非表示にする
    • outline:none;
リンク部分を押下した際、点線が表示されないようにする。
普段は気にならないが、今回は<a class="tooltips"><span></a></span>の
範囲は見かけ以上に大きいため気になるので非表示にする。
  • a.tooltips font / a:visited.tooltips font
    • border-bottom:1px solid blue / border-bottom:1px solid purple
a.tooltipsのtext-decoration: noneの指定によりリンク時の下線が非表示
になってしまっているのを補う。ここでは、<font>で指定された部分に
意図的に下線を表示し、リンク時に自動的に表示される下線に見立てる
  • html>body a:active.tooltips font
    • border-bottom:1px solid red
IE以外はリンク文字列を押している間、文字が赤く表示されるので下線も赤くする
html>bodyの指定でIE以外に適用される
  • a:hover.tooltips
    • position:relative
<a class="tooltips"><span>でくくられたToolTipsが表示されるときの位置の基準になる
という指定。
  • a.tooltips span
    • display:none
通常時は非表示にする指定
  • a:hover.tooltips span
    • display:block
マウスオーバー時は表示させる
    • position:absolute
relativeが指定された要素を基準に位置を指定するという記述
    • top:20px / left:20px
位置の指定
    • float:left
要素の左よせ
    • white-space:nowrap
要素内の自動的な折り返しを禁止する
これによりToolTipsが一行で表示する
    • background:#fffcd1;
ToolTipsの背景色
    • border:1px solid #444
ToolTipsのボーダー指定
    • color:#444
ToolTipsの文字色指定
    • padding:1px 5px
ToolTipsのセル内余白指定
    • z-index:100
ToolTipsがマウスオーバーした際は<a class="tooltips>の要素より上に重なって表示するようにする指定。
 <a class="tooltips>のz-indexが10、<a class="tooltips><span>がz-indexが100なので、数値が大きいToolTipsが上に重なって表示される