javascript - 根据屏幕大小隐藏和显示元素

标签 javascript html css

我正在尝试制作当网页在较小的屏幕上显示时隐藏和显示菜单的按钮。当显示宽度超过 640px 时,我想保留整个菜单。我只被允许使用 CSS 和 JavaScript。

这是我写的JS函数:

var b = document.getElementById ("menu-button");
b.addEventListener("click", showMenu, false);
var i = 0;
function showMenu () {
    i++;
    if(i % 2 == 1)
        document.getElementById("menu").style.display = "block";
    else
        document.getElementById("menu").style.display = "none";
}

在较小的屏幕上显示页面时有效。

当我单击按钮隐藏菜单(将“菜单”显示更改为 none)然后增加页面大小时,当屏幕大于 640px 时我的菜单不会出现.

这个媒体媒体查询不做这个工作:

@media screen and (min-width:640px) {
    #menu {
        display: block;
    }
}

最佳答案

您需要将 !important 添加到 CSS 属性,例如:

 #menu { display:block!important; } 

您的 Javascript 将 style 属性添加到具有 higher priority 的元素比任何内部或外部 CSS 样式都重要,除非它们"is"!important

为了避免这种情况,您还可以考虑在 Javascript 中切换某些 CSS 类,而不是设置 style 属性。这样您就可以避免使用 !important

关于javascript - 根据屏幕大小隐藏和显示元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40437427/

相关文章:

CSS nth 与图像

javascript - 为什么我的 JS 递归函数返回一个填充有相同条目的列表?

javascript - JS DOM - 添加/删除按钮不起作用

html - SVG 无法正确旋转

崩溃后的 JavaScript 屏幕位置

html - 为什么我的推文按钮不会出现在我的页面上?

css - Twitter Bootstrap 下拉截止

javascript - 从 addCard trello API 创建 trello 卡后如何捕获它的链接?

javascript - 示例 Casper JS 脚本不起作用

javascript - NodeRed服务器: Install custom nodes while running