我正在尝试创建一个下拉菜单栏,如果将鼠标悬停在“项目”工具提示上会显示一些文本。
我得到的结果是A,我希望得到这样的结果,如B,下拉菜单中的工具提示没有被一半遮盖。
我假设由于我的span元素位于anchor元素内,因此不可能从下拉菜单中弹出,或者也许 这是由于溢出属性引起的,但是我不确定如何修正或更改我的代码以实现B,我也不想增加下拉菜单的宽度来实现这一点,也就是说我不希望工具提示文本受下拉菜单限制。
我是否可以朝着我要问的方向前进?
代码如下:
HTML
<ul id='menu'>
<li>choose
<ul>
<li><a class="tooltip" href="">a<span class="tooltiptext">this is a</span></a></li>
<li><a class="tooltip" href="">b<span class="tooltiptext">this is b</span></a></li>
<li><a class="tooltip" href="">c<span class="tooltiptext">this is c</span></a></li>
<li><a class="tooltip" href="">d<span class="tooltiptext">this is d</span></a></li>
</ul>
</li>
CSS
#menu > li {
display:inline-block;
border:1px solid grey;
position:relative;
}
#menu li ul {
position:absolute;
border:1px solid grey;
list-style-type: none;
max-height:0;
overflow:hidden;
}
#menu li:hover ul {
overflow-y:scroll;
overflow-x:hidden;
max-height:150px;
}
.tooltip {
position: relative;
display: inline-block;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 120px;
background-color: #555;
color: #fff;
text-align: center;
padding: 5px 0;
border-radius: 6px;
position: absolute;
z-index: 1;
bottom: 125%;
left: 50%;
margin-left: -60px;
}
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 1;
}
答案 0 :(得分:0)
如果使用Javascript,将获得最佳结果。我已经在CodeSandbox(https://codesandbox.io/s/nn96zl4jl)中写了一个简短的示例。
将包含的<ul>
元素设置为position: absolute
,在该元素之外设置工具提示<div>
元素,并最初display: none
编写可以通过模式连接的元素ID(例如,元素ID'number1',工具提示ID'number1tooltip',2 ... 3 ... 4等),连接可以获取悬停目标的事件监听器('mouseenter','mouseleave')事件,从以下位置找到工具提示将鼠标悬停在目标上(将“工具提示”与ID关联),设置display: inline
并使用getBoundingClientRect()
来确定如何将其绝对定位(请参见CodeSandbox方法)。
GL。
答案 1 :(得分:0)