下拉菜单上的重叠文本

Overlap Text on Dropdown Menu

我的下拉菜单与页面内容重叠时出现问题。这是它的 jsfiddle:https://jsfiddle.net/yusrilmaulidanraji/qu4fnxLn/ 这是我的代码:

html:

    <div class="dropdown" style="float:left;">
      <button class="dropbtn">Left</button>
      <div class="dropdown-content" style="left:0;">
        <a href="#">Link 1</a>
        <a href="#">Link 2</a>
        <a href="#">Link 3</a>
      </div>
    </div>
<br><br><br><br>
<div id="draggable" class="draggable draggable-text ui-draggable ui-draggable-handle content" title="Click and Drag to the Grid">Company Name</div>

CSS:

.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    right: 0;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover .dropdown-content {
    display: block;
}

.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}

JS:

$( function() {
    $( "#draggable" ).draggable();
  });

我假设问题的根源是 JQuery-UI 中的可拖动 class。如您所见,内容是可拖动的,我使用 JQuery-UI 中的 class 作为它的内容。这是 class 的文档: https://jqueryui.com/draggable/

那么,有没有什么办法可以让下拉菜单的内容不重叠呢? 提前谢谢你。

已编辑: 以前我试图简化我的案例,但结果,它有不同的时间顺序。为了精确,我用我实际项目的案例做了一个新的jsfiddle(我实际上也尝试简化它,但希望它最终会有相同的解决方案)。这是我的项目的 jsfiddle: https://jsfiddle.net/yusrilmaulidanraji/qu4fnxLn/4/

您可以在 CSS 中设置可拖动元素的 z-index:

.draggable {
  position: absolute;
  z-index: -1
}

z-index: -1 将它设置到后面,并且它只对定位元素起作用,因此需要这两个设置。 More on it here.

请注意,这会将可拖动元素放在后面,在包括按钮在内的所有内容之后。如果这不是本意,我会让你弄清楚其余的。祝你好运!

根据@AgataB 的回答,我找到了另一个不错的解决方案。我没有更改内容的 z-index,而是更改了下拉列表的 z-index。

.dropdown {
    position: relative;
    display: inline-block;
    z-index: 1;
}

现在,内容不与下拉菜单重叠,并且可拖动仍在工作。