P粉9261742882023-08-29 15:37:17
一種實作方法是建立一個位於被懸停文字上方和旁邊的::before
偽元素。
* { margin: 0; padding: 0; box-sizing: border-box; } .box { width: 100px; height: 100px; padding-top: 20px; border-style: solid; border-color: red; } .tooltip { position: relative; display: inline-block; } .tooltip::before { content: "哇,这太棒了,这是一个史诗般的工具提示文本"; position: absolute; left: 25%; bottom: -75%; display: none; width: 500px; background-color: white; border: 2px solid pink; } .tooltip:hover::before { display: flex; }
<div class='box'> <div class='tooltip'> 鼠标悬停查看工具提示 </div> </div>
P粉9828815832023-08-29 00:55:51
有很多方法可以實現,但如果你只是想讓工具提示在容器外可見,你不需要使用z-index
或overflow
。你只需要將工具提示移到相對容器內的定位上下文。
根據你的評論,由於你希望工具提示只在懸停在文本上時出現,我建議你的相對容器精確地包裹住你想懸停的內容。為了說明這一點,我在外框上添加了一個邊框,與你決定使用相對容器的位置相比。
然後,只需將box:hover
更改為relative-container:hover
以定位到正確的元素。
我試圖組織HTML和類別名,使其更具語義性和簡潔性以進行說明。希望對你有幫助!
.box { padding: 30px; border: blue solid; width: 300px; display: flex; align-items: center; } .relative-container { position: relative; } .box-content { border-style: solid; border-color: red; padding: 10px; } .tooltip { position: absolute; left: 0; top: 0; max-width: 60vw; min-width: 15vw; background-color: white; border: #1a7bd9 solid; display: none; } .relative-container:hover .tooltip { display: block; cursor: pointer; }
<div class='box'> <div class='relative-container'> <div class='box-content'> Hover for tooltip. I have a little padding to give the text some room. </div> <div class='tooltip'> Wow, this is amazing, such an epic tooltip text. I'm aligned with the top of the box content containing text and take up the full width. I only appear when hovering over the box content (red outline), not the surrounding container (blue outline). </div> </div> </div>