【发布时间】:2021-06-26 18:44:39
【问题描述】:
所以我想做这个响应式菜单。在桌面上看起来像这样:
在移动设备上,它应该看起来堆叠在它下面的所有东西上,而不是把它往下推。所以不是这样的:
(在按下按钮之前)
(按下按钮后)
你可以看到下面的幻灯片被按下了,一般按钮上的菜单明显错位。
请帮我解决这个问题,我是一个糟糕的后端开发人员。 这是我的代码:
function myFunction() {
var x = document.getElementById("menu");
if (x.className === "menu") {
x.className += " responsive";
} else {
x.className = "menu";
}
}
.menu .icon {
display: none;
}
@media screen and (max-width: 965px) {
.menu a {display: none;}
.menu a.icon {
float: right;
display: block;
}
}
/* The "responsive" class is added to the menu with JavaScript when the user clicks on the icon */
@media screen and (max-width: 965px) {
.menu.responsive {
background-color: white;
position: relative;
}
.menu.responsive a.icon {
position: absolute;
right: 0;
top: 0;
}
.menu.responsive a {
float: none;
display: block;
text-align: left
}
}
<div class="mainheader">
<div class="logo">
<img src="../bilder/Logo_Koeln_Fliesen_Esch.jpg">
</div>
<div id="menu" class="menu">
<a href="start.html">Unternehmen</a>
<a href="start.html">Leistungen</a>
<a href="referenzen.html">Referenzen</a>
<a href="start.html">Kontakt</a>
<a href="javascript:void(0);" class="icon" onclick="myFunction()">
<img class="bigicon" src="../bilder/menu.png">
</a>
</div>
</div>
【问题讨论】:
-
尝试将 div 栏(白色栏)的位置设置为绝对位置。这样,杠铃就不会伸展。另外,将打开的汉堡菜单的 z-index 设置得更高,这样它就会出现在三行之前。
-
将菜单位置设置为绝对将解决拉伸问题,但不能解决按钮重叠问题。 z-index 不是一个选项,因为该按钮应该是可访问的。 *我确实设置了绝对和正确 0
标签: javascript html css responsive-design