javascript - Ul/div 没有得到高度

标签 javascript html css height

当我按下“菜单按钮”时,我无法显示导航栏。该 div 似乎出现在代码中,但是高度为 0。这是问题的相关代码。您对我如何解决这个问题有什么建议吗?

var onOff = 0;

function dropdown() {
    "use strict";
    var navbar = document.getElementById("nav_ul");
    var ulDiv = document.getElementById("ulDiv");
    if (onOff === 0) {
        navbar.setAttribute("class", "navShow");
        ulDiv.setAttribute("class", "navShow");
        onOff = 1;
    } else if (onOff === 1) {
        navbar.setAttribute("class", "navHide");
        ulDiv.setAttribute("class", "navHide");
        onOff = 0;
    }
}
#ulDiv{
    text-align: center;
    float: none;
}

ul{
    position: relative;
    bottom: 0;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 20px;
}
li {
    display: inline;
    padding-top: 0;
    margin-top: 0;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 5px;
}
.navHide{
    display: none;
}
.navShow{
    display: block;
    height:auto;
}
@media screen and (max-width: 1005px) {
    #ulDiv{
        height: auto;
    }
    
    #nav_ul{
        display: none;
        width: 100px;
        z-index: 3;
        position: absolute;
        top: 106px;
        left: 0px;
        margin: 0px;
        padding-bottom: 20px;
    }
    li{
        display: inline-block;
    }
}
<header>
        <nav id="navbar" class="navbar">
        <a href="home.html" id="logoA"><img id="logo" alt="logo" src="logo_dk.jpg"></a>
        <button id="menu-but" onclick="dropdown()"><img id="meny-icon" alt="meny icon" src="menu-icon.png"></button>
        <div id="ulDiv"><ul id="nav_ul" class="none">
        <li><a href="home.html">Forside</a></li>
        <li><a href="#">Advokater</a></li>
        <li><a href="#">Sagsområder</a></li>
        <li><a href="#">Internationalt</a></li>
        <li><a href="#">Oplysninger</a></li>
        <li><a href="#">Karriere</a></li>
        <li><a href="#">Historie</a></li>
        <li><a href="#">Kontakt</a></li>
        </ul>
        </div>
        </nav>
    </header>

最佳答案

  var onOff = 0;

window.dropdown = function() {
    "use strict";
    var navbar = document.getElementById("nav_ul");
    var ulDiv = document.getElementById("ulDiv");
    if (onOff === 0) {
        navbar.setAttribute("class", "navShow");
        ulDiv.setAttribute("class", "navShow");
        onOff = 1;
    } else if (onOff === 1) {
        navbar.setAttribute("class", "navHide");
        ulDiv.setAttribute("class", "navHide");
        onOff = 0;
    }
}
#ulDiv{
    text-align: center;
    float: none;
    display: none;
}

ul{
    position: relative;
    bottom: 0;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 20px;
}
li {
    display: inline;
    padding-top: 0;
    margin-top: 0;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 5px;
}
header .navHide{
    display: none;
}
header .navShow{
    display: block !important;
    height:auto;
}
@media screen and (max-width: 1005px) {
    #ulDiv{
        height: auto;
    }

    #nav_ul{
     
        width: 100px;
        z-index: 3;
        position: absolute;
        top: 106px;
        left: 0px;
        margin: 0px;
        padding-bottom: 20px;
    }
    li{
        display: inline-block;
    }
}
<header>
        <nav id="navbar" class="navbar">
        <a href="home.html" id="logoA"><img id="logo" alt="logo" src="logo_dk.jpg"></a>
        <button id="menu-but" onclick="window.dropdown()"><img id="meny-icon" alt="meny icon" src="menu-icon.png"></button>
        <div id="ulDiv"><ul id="nav_ul" class="none">
        <li><a href="home.html">Forside</a></li>
        <li><a href="#">Advokater</a></li>
        <li><a href="#">Sagsområder</a></li>
        <li><a href="#">Internationalt</a></li>
        <li><a href="#">Oplysninger</a></li>
        <li><a href="#">Karriere</a></li>
        <li><a href="#">Historie</a></li>
        <li><a href="#">Kontakt</a></li>
        </ul>
        </div>
        </nav>
    </header>
    
    <script>
  
    </script>

关于javascript - Ul/div 没有得到高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45009625/

相关文章:

javascript - 如何停止ngDraggable Angular js中的点击事件?

javascript - VueJS Select2 指令不会触发@change 事件

html - css - 一个框决定高度,其他宽度

javascript - scrollTop 在 jQuery 中表现得很疯狂

javascript - 仅从域+TLD 组合中分割域

javascript - 如何在for循环中获取第一个子节点

iphone - iOS NSXML 解析未格式化的 HTML

javascript - 如何根据javascript中的id找出哪个html标签

javascript - 在 div 中居中图像和文本

CSS 响应式 div,当高度以像素为单位设置时