本章帶給大家CSS的 Tooltip(提示工具)介紹(詳解)。有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
提示工具在滑鼠移動到指定元素後觸發,可以在四個方位顯示:頭部顯示、右邊顯示、左邊顯示、底部顯示。
一、基礎提示方塊(Tooltip)
#提示方塊在滑鼠移到指定元素上顯示:
/* Tooltip 容器 */ .tooltip { position: relative; display: inline-block; border-bottom: 1px dotted black; /* 悬停元素上显示点线 */ } /* Tooltip 文本 */ .tooltip .tooltiptext { visibility: hidden; width: 120px; background-color: black; color: #fff; text-align: center; padding: 5px 0; border-radius: 6px; /* 定位 */ position: absolute; z-index: 1; } /* 鼠标移动上去后显示提示框 */ .tooltip:hover .tooltiptext { visibility: visible; }
實例解析
HTML) 使用容器元素(like
提示文字放在內聯元素上(如 ) 並使用class="tooltiptext"。
CSS)tooltip 類別使用 position:relative, 提示文字需要設定定位值 position:absolute。 注意: 接下來的實例會顯示更多的定位效果。
tooltiptext 類別用於實際的提示文字。模式是隱藏的,在滑鼠移動到元素顯示 。設定了一些寬度、背景色、字體色等樣式。
CSS3 border-radius 屬性用於為提示框新增圓角。
:hover 選擇器用於在滑鼠移動到指定元素
二、定位提示工具
以下實例中,提示工具顯示在指定元素的右邊(left:105%) 。
注意 top:-5px 同於定位在容器元素的中間。使用數字 5 因為提示文字的頂部和底部的內邊距(padding)是 5px。
如果你修改 padding 的值,top 值也要對應修改,這樣才可以確保它是居中對齊的。
在提示框顯示在左邊的情況也是這個原理。
顯示在右邊:
.tooltip .tooltiptext { top: -5px; left: 105%; }
顯示在左邊:
.tooltip .tooltiptext { top: -5px; right: 105%; }
如果你想要提示工具顯示在頭部和底部。我們需要使用 margin-left 屬性,並設定為 -60px。這個數字計算來源是使用寬度的一半來居中對齊,即: width/2 (120/2 = 60)。
顯示在頭部:
.tooltip .tooltiptext { width: 120px; bottom: 100%; left: 50%; margin-left: -60px; /* 使用一半宽度 (120/2 = 60) 来居中提示工具 */ }
顯示在底部:
.tooltip .tooltiptext { width: 120px; top: 100%; left: 50%; margin-left: -60px; /* 使用一半宽度 (120/2 = 60) 来居中提示工具 */ }
三、添加箭頭
我們可以用CSS 偽元素::after 及content 屬性為提示工具建立一個小箭頭標誌,箭頭是由邊框組成的,但組合起來後提示工具像個語音資訊框。
以下實例示範如何為顯示在頂部的提示工具新增底部箭頭:
.tooltip .tooltiptext::after { content: " "; position: absolute; top: 100%; /* 提示工具底部 */ left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: black transparent transparent transparent; }
實例解析
在提示工具內定位箭頭: top: 100% , 箭頭將顯示在提示工具的底部。 left: 50% 用於居中對齊箭頭。
注意:border-width 屬性指定了箭頭的大小。如果你修改它,也要修改 margin-left 值。這樣箭頭在能居中顯示。
border-color 用於將內容轉換為箭頭。設定頂部邊框為黑色,其他是透明的。如果設定了其他的也是黑色則會顯示為一個黑色的四邊形。
以下實例示範如何在提示工具的頭部添加箭頭,注意設定邊框顏色:
#底部提示框/頂部箭頭:
.tooltip .tooltiptext::after { content: " "; position: absolute; bottom: 100%; /* 提示工具头部 */ left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: transparent transparent black transparent; }
以下兩個實例是左右兩邊的箭頭實例:
右側提示框/左箭頭:
.tooltip .tooltiptext::after { content: " "; position: absolute; top: 50%; right: 100%; /* 提示工具左侧 */ margin-top: -5px; border-width: 5px; border-style: solid; border-color: transparent black transparent transparent; }
左側提示框/右側箭頭:
.tooltip .tooltiptext::after { content: " "; position: absolute; top: 50%; left: 100%; /* 提示工具右侧 */ margin-top: -5px; border-width: 5px; border-style: solid; border-color: transparent transparent transparent black; }
四、淡入效果
我們可以使用CSS3 transition 屬性及opacity 屬性來實現提示工具的淡入效果:
左側提示框/右側箭頭:
.tooltip .tooltiptext { opacity: 0; transition: opacity 1s; } .tooltip:hover .tooltiptext { opacity: 1; }
五、程式碼實例:
.wrapper { text-transform: uppercase; background: #ececec; color: #555; cursor: help; font-family: "Gill Sans", Impact, sans-serif; font-size: 20px; margin: 100px 75px 10px 75px; padding: 15px 20px; position: relative; text-align: center; width: 200px; -webkit-transform: translateZ(0); /* webkit flicker fix */ -webkit-font-smoothing: antialiased; /* webkit text rendering fix */ } .wrapper .tooltip { background: #1496bb; bottom: 100%; color: #fff; display: block; left: -25px; margin-bottom: 15px; opacity: 0; padding: 20px; pointer-events: none; position: absolute; width: 100%; -webkit-transform: translateY(10px); -moz-transform: translateY(10px); -ms-transform: translateY(10px); -o-transform: translateY(10px); transform: translateY(10px); -webkit-transition: all .25s ease-out; -moz-transition: all .25s ease-out; -ms-transition: all .25s ease-out; -o-transition: all .25s ease-out; transition: all .25s ease-out; -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28); -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28); -ms-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28); -o-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28); box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28); } /* This bridges the gap so you can mouse into the tooltip without it disappearing */ .wrapper .tooltip:before { bottom: -20px; content: " "; display: block; height: 20px; left: 0; position: absolute; width: 100%; } /* CSS Triangles - see Trevor's post */ .wrapper .tooltip:after { border-left: solid transparent 10px; border-right: solid transparent 10px; border-top: solid #1496bb 10px; bottom: -10px; content: " "; height: 0; left: 50%; margin-left: -13px; position: absolute; width: 0; } .wrapper:hover .tooltip { opacity: 1; pointer-events: auto; -webkit-transform: translateY(0px); -moz-transform: translateY(0px); -ms-transform: translateY(0px); -o-transform: translateY(0px); transform: translateY(0px); } /* IE can just show/hide with no transition */ .lte8 .wrapper .tooltip { display: none; } .lte8 .wrapper:hover .tooltip { display: block; }
效果圖:
以上是CSS的 Tooltip(提示工具)介紹(詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!