自适应导航

时间:2016-01-03 21:34:44

标签: html css nav sticky hamburger-menu

我目前正在建立我的第一个响应式网站。

对于平板电脑,笔记本电脑和台式机使用,导航是“粘性的”,并且正如我所希望的那样工作。

对于任何小于此的显示,导航将隐藏在典型的“汉堡菜单”中,该菜单会在点击时显示导航。

这一切都很好,但我的问题是在'汉堡点击'上显示导航。导航显示在标题和下面的内容上方,而不是将任何内容推到屏幕旁边/下方,我觉得它会默认显示。

我觉得问题与定位有关,我只是不能把手指放在什么上。 这是导航元素在其常规和响应状态下显示的位置:

/* HEADER & NAV
--------------------------*/
header {
    height: 140px;
    position: relative;
    background-image: url("../img/headerback.jpg");
    text-align: center;
    padding-top: 1.4em;
    font-family: 'Josefin Sans', sans-serif;
    text-transform: uppercase;
}

header a {
    font-size: 4.8em; 
    border-bottom: solid 5px #b9beaa;
}

header a, nav li, footer, footer a {
    text-decoration: none;
    color: #fff; 
}

nav {
    height: 36px;
    position: absolute;
    bottom: 0;
    width: 100%;
    font-size: 0.245em;
    padding-top: 2.5em;
}

nav li {
    display: inline;
    padding: 0 0.6em 0 0.7em;
}

nav li a {
    border: none;
    letter-spacing: 2px;
    position: relative;
}

/*----------------- Responsive Nav */
    nav ul {
        display:none;
    }
    nav a#navIcon{
        position: absolute;
        right: 20px;
        top: 20px;
        border-bottom: none;
    }
    nav {
        font-size: 0.6em;
    }
    nav li {
        display: block;
        padding-bottom: 0.6em;
    }
header a {
        font-size: 1.6em;
    }

这也是我第一次尝试使用JSFiddle。

如果有人需要我提供其他任何东西,请询问。

感谢您的帮助。

https://jsfiddle.net/AlexEd/5a98ttq8/

1 个答案:

答案 0 :(得分:1)

有一些问题会阻止导航菜单按下面的内容:

jquery很难设置“.nav-placeholder”div的高度。高度应该是“自动”,因此浏览器可以计算高度并推送下面的内容。

jQuery(".nav-placeholder").height("auto");

nav标签是position:absolute。将其更改为静态。和身高:自动。

nav {
    font-size: 0.6em;
    position: static;
    height: auto;
}

标题标记在@media only屏幕中将高度更改为自动,并且(最大宽度:480px)

header {
    height: auto;
    padding-top: 0.8em;
    padding-bottom: 0.2em;
}

我把一个例子放在一起 https://jsfiddle.net/jonathon_wei/865nsj9q/1/