你真的會(huì)寫(xiě)toolTip嗎

你的tooltip一般都是怎么寫(xiě)的呢?例如實(shí)現(xiàn)類似下圖的效果(wps word文檔 的 tooltip):當(dāng)鼠標(biāo)移出icon的時(shí)候顯示一段工具提示文本,當(dāng)鼠標(biāo)移出工具提示文本消失。


wps-word的tooltip.png

一些小伙伴可能“不加思索”的就有想法了:父元素里包含兩個(gè)兄弟元素,其一就是這個(gè)icon,其二就是它的工具提示文本;在父元素上設(shè)置鼠標(biāo)移入、移出來(lái)實(shí)現(xiàn)交互就OK了。實(shí)例如下:

<body>
   <div id="icon-box">
       <i class="icon" id="icon">B</i>
       <span class="text" id="text" style="display: none;">將所選內(nèi)容字體加粗</span>
    </div>  
</body>
<script>
    var  iconBox=document.getElementById("icon-box")
    var  text=document.getElementById("text")
    iconBox.onmouseover=function(){
        text.style.display="block";
    }
    iconBox.onmouseout=function(){
        text.style.display="none";
    }
</script>

ok,這樣當(dāng)然可以實(shí)現(xiàn)效果啦。不過(guò)嘛~~~在這里,icon的父元素用的是div,寬和高都沒(méi)有限制。只是對(duì)icon的大小做了限定(如下):

.icon{
            display: block;
            width: 24px;
            height: 24px;
            line-height: 24PX;
            text-align: center;
            border-radius: 45%;
            background-color: aqua;
            font-weight: bolder;
        }

然而實(shí)際情況中,icon的父級(jí)元素可能就比它大一點(diǎn)點(diǎn),甚至是和它大小一致(如下):

 div{
            width: 24px;
            height: 24px;
        }

這個(gè)時(shí)候,tooltip的展示效果如何呢?看看下圖吧:


限定父級(jí)元素的大小.png

吼吼吼~~~效果是不是超出預(yù)期啦?

有的小伙伴可能會(huì)說(shuō),那也難不住我呀,給tootip設(shè)置一下樣式不就ok了。嗯,也對(duì)!如下:

 .text{
            width: 150px;
        }

ok,這樣設(shè)置在這里確實(shí)OK了。

但是,tootip工具提示文本在實(shí)際情況中可是有長(zhǎng)有短的哦。以中文來(lái)說(shuō),有的可能就是兩個(gè)漢字,有的可能八九個(gè)漢字,工具欄一般都有很多項(xiàng)工具按鈕,難道要一個(gè)個(gè)去設(shè)置嗎?況且現(xiàn)在都是組件化開(kāi)發(fā)了。如果以最大寬度去設(shè)置,文字長(zhǎng)度最長(zhǎng)的當(dāng)然可以容納下,那文字長(zhǎng)度短的容器內(nèi)豈不是要大片留白?這種效果恐怕自己都得尷尬死?。?/p>

還有兩點(diǎn)需要提醒一下:
1、工具提示文本的邊框也還沒(méi)有設(shè)置;
2、如果該工具按鈕上還有onclick事件,onmouseover還會(huì)和它沖突哦,但很不幸的是,實(shí)際情況中就是有onclick事件。

唉,是不是頭都要大了?一個(gè)小小的tooltip竟然搞這么大了

其實(shí)呀,html有一個(gè)全局屬性title可以幫你輕松又簡(jiǎn)單的實(shí)現(xiàn)哦
https://www.runoob.com/tags/att-global-title.html

<div id="icon-box">
       <i class="icon" id="icon" title="將所選內(nèi)容字體加粗">B</i>
    </div>

回頭再看之前的那些操作,是不是如此設(shè)置更簡(jiǎn)單省力!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • CSS全局樣式 概覽 移動(dòng)設(shè)備優(yōu)先 布局容器 1、container類用于固定寬度并支持響應(yīng)式布局的容器 2、co...
    VEN_64d6閱讀 1,539評(píng)論 0 1
  • Bootstrap 是基于H5利用 JS和CSS 進(jìn)行布局、提供插件、動(dòng)畫(huà)的一個(gè)框架。使用了JQuery進(jìn)行DOM...
    軒居晨風(fēng)閱讀 1,031評(píng)論 0 5
  • 第1章 jQuery實(shí)現(xiàn)Ajax應(yīng)用 1-1 使用load()方法異步請(qǐng)求數(shù)據(jù) 使用load()方法通過(guò)Ajax請(qǐng)...
    mo默22閱讀 1,913評(píng)論 1 9
  • 拖曳插件—— draggable 拖曳插件 draggable 的功能是拖動(dòng)被綁定的元素,當(dāng)這個(gè) jQuery U...
    孤傭閱讀 625評(píng)論 0 1
  • 本書(shū)源碼:https://pan.baidu.com/share/init?surl=jIzG0Hg提取碼:etj...
    Arale_zh閱讀 1,112評(píng)論 0 0

友情鏈接更多精彩內(nèi)容