我正在尝试向导航栏添加一个下拉菜单,如此处的文档所述。
默认情况下,.dropdown-content设置为top: 0;。这是默认行为:
如果将顶部更改为50px,materialize.css则实际上将其向上移动50像素并将元素样式设置为top: -50px。
这是代码:
.dropdown-content {
top: 50px;
}
Run Code Online (Sandbox Code Playgroud)
但是在渲染时,该元素如下所示:
<ul id="dropdown1" class="dropdown-content" tabindex="0" style="display: block; width: 139.297px; left: 900.891px; top: -50px; height: 216px; transform-origin: 0px 0px 0px; opacity: 1; transform: scaleX(1) scaleY(1);">
Run Code Online (Sandbox Code Playgroud)
(关键是`top:-50px;)
我测试了多个值,这里是65:
.dropdown-content {
top: 65px;
}
<ul id="dropdown1" class="dropdown-content" tabindex="0" style="display: block; width: 139.297px; left: 900.891px; top: -65px; height: 216px; transform-origin: 0px 0px 0px; opacity: 1; transform: scaleX(1) scaleY(1);">
Run Code Online (Sandbox Code Playgroud)
(现在是top: -65px)
为什么要反转此值? 如何制作下拉菜单,使其不遮挡主菜单?
我检查了一下,我看到了最好的方法,因为样式来自JS,我检查了它有特殊的计算,如果您想避免任何固定的高度,可能会在标头中添加填充或其他内容,因此最好给出在top:100%并用!important比的JS强
上课 .dropdown-content top: 100% !important;
.dropdown-content {
top: 100% !important;
}
Run Code Online (Sandbox Code Playgroud)