首頁  >  文章  >  web前端  >  CSS的 Tooltip(提示工具)介紹(詳解)

CSS的 Tooltip(提示工具)介紹(詳解)

青灯夜游
青灯夜游原創
2018-09-14 17:53:432149瀏覽

本章帶給大家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

) 並新增 "tooltip" 類別。在滑鼠移動到
上時顯示提示訊息。

提示文字放在內聯元素上(如 ) 並使用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(提示工具)介紹(詳解)

#

以上是CSS的 Tooltip(提示工具)介紹(詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn