css-position - 如何给固定位置的 div 一个 z-index
问题描述
我正在一个具有很多 z-index 值的网站上工作,并且我正在尝试制作一个拖放菜单,您可以四处移动但始终保持在屏幕空间中。但是因为拖放菜单会有一个固定的位置,所以它会破坏 z-index 定位(它会显示如果它是绝对定位的则不会显示的边框)。
我知道您无法使用 z-index 定位固定元素,但是你们可能知道解决方法吗?
这是我到目前为止所拥有的 JS 小提琴(我把标题留在里面): https ://jsfiddle.net/wdeyvb7q/
HTML:
<div id="menu-container">
<div id="draggable3" class="draggable ui-widget-content">
<p>I'm a very confused box, position fixed on my container breaks the style.</p>
</div>
</div>
CSS(带有#menu-container 绝对):
#menu-container {
width: calc(90vw - 94px);
height: calc(100vh + 8px);
top: -4px;
position: absolute;
left: calc(5vw + 47px);
}
.draggable {
background: white;
width: 100%;
height: 90px;
float: left;
position: absolute;
z-index: 200;
border-top: 4px solid black;
border-bottom: solid black;
}
#draggable, #draggable2 {
margin-bottom:0px;
}
#draggable {
cursor: n-resize;
}
JS:
$( function() {
$( "#draggable3" ).draggable({ containment: "#menu-container", scroll: false });
} );
解决方案
我解决了!我删除了侧边栏的两个内边框,并添加了 2 个左右浮动的 div。通过将这些 div 放置在 HTML 文件中的菜单代码下,它将保留在菜单下,因此我在每一侧添加了一个边框,这并没有破坏设计 =)!
JSFiddle:https ://jsfiddle.net/adf2gte7/
HTML:
<!-- Left And Right Inner Borders -->
<div class='left-border-menu'></div>
<div class='right-border-menu'></div>
CSS:
/* Inner Borders */
.left-border-menu {
width: calc(5vw + 47px);
height: 2000px;
background: orange;
float: left;
border-right: 4px solid black;
}
.right-border-menu {
width: calc(5vw + 47px);
height: 2000px;
background: orange;
float: right;
border-left: 4px solid black;
}
推荐阅读
- c++ - 有人可以在从函数返回数组时解释输出的行为吗?
- java - How to bind a Gluon View with spring boot controller?
- css - CSS: Changing background color of parent label when the input checkbox is checked?
- python - Expand a column of lists into multiple rows in Pandas
- gitlab - /bin/sh: eval: line 98: bash: not found
- r - How do I handle legend boxes with tmap library?
- r - CRAN 检查结果显示“r-release-windows-ix86+x86_64”是一个错误
- java - 将功能接口的实现作为参数传递
- c# - Problem getting selected row values to combo box from datagridview cell click in c#
- for-loop - Is there a more concise way to returning words in a specified text with a combination of characters