【发布时间】:2026-01-29 01:25:01
【问题描述】:
@media screen and (min-width: 900px) and (max-width: 1215px) {
#menu {
display:none;
}
}
这不起作用,div 仍然可见。但是,如果我将 div 更改为 <div class="menu"> 而不是 <div id="menu"> 和 css :
@media screen and (min-width: 900px) and (max-width: 1215px) {
.menu {
display:none;
}
}
它有效。为什么会这样?
编辑
Inspector 是这样说的:
element {
display: block;
}
#listMenuTop {
display: none;
}
#listMenuTop {
display: none;
margin-bottom: -14px;
margin-top: 10px;
}
但是两个 display:none 都被交叉了。显示在哪里:块;来自?
编辑 2
我发现了问题。一个 js 函数正在覆盖 css 显示属性:
document.getElementById('listMenuTop').style.display='block';
我想要做的是在屏幕 >= 900 像素和屏幕
【问题讨论】:
-
你有没有可能在某个地方有另一个
#menu?一个页面上应该只有 1 个 ID。 -
应该工作jsFiddle
-
@BeatAlex 没有。我没有另一个#menu。
-
可能是元素,当它具有 id 时,它被另一个选择器覆盖。也许有一个具有更大特异性的选择器,或者在您提到的选择器之后定义了另一个选择器。使用开发者工具进行检查。
-
它应该可以工作。检查 dom 检查器中元素的 css。它显示了什么?
标签: html css media-queries