导航栏,响应式导航出现问题

时间:2019-04-12 13:05:16

标签: javascript html css navbar responsive

当导航栏显示在小屏幕上(移动示例)时,它没有按预期出现,我无法解决问题

我试图多次更改css,但情况变得更糟

你能帮我吗:)

navbar responsive test

@media( max-width: 1200px){
    header{
        /*margin: 20px;*/
        
    }
}
@media( max-width: 768px){
    .menu-toggle{
        display: block;
        width: 40px;
        height: 40px;
        margin: 10px;      
        float: right;
        cursor: pointer;
        text-align: center;
        font-size: 30px;
        color: #069370;
    }
    .menu-toggle:before{
        content: '\f0c9';
        font-family:  FontAwesome;
        line-height: 40px;
    }
    .menu-toggle.active:before{
        content: '\f00d';
        font-family:  FontAwesome;
        line-height: 40px;
    }
    nav {
        display: none;
    }
    nav.active {
        display: block;
        width: 100%;
    }
    nav.active ul {
        display: block;
        
    }
    nav.active ul li a {
        margin: 0;
        
    }
}

4 个答案:

答案 0 :(得分:0)

<header>元素中的元素是浮动的,因此菜单不知道该元素停在哪里,这导致CSS不知道如何计算该元素的高度

对此的一种快速解决方案是将overflow: hidden

<header style="overflow: auto"> ... </header>

您可以从详细阐述的StackOverflow答案link to answer

中了解很多

答案 1 :(得分:0)

我添加了溢出内容:自动在标题上起作用,但是当我单击按钮菜单切换按钮时,文本也无法固定菜单面板,文本右移,我看不到他。 我认为我在类.menu-toggle中的“ float:right”有问题。 文字不在移动显示屏上显示,他向右走,但他没有占据好位置... 我想将菜单面板一个放在另一个下方

  • 关于
  • 服务

navbar responsive with overflow : auto

@media( max-width: 1200px){
    header{
        /*margin: 20px;*/
      overflow: auto;
        
    }
}
@media( max-width: 768px){
    .menu-toggle{
        display: block;
        width: 40px;
        height: 40px;
        margin: 10px;     
        float: right;
        cursor: pointer;
        text-align: center;
        font-size: 30px;
        color: #069370;
    }
    .menu-toggle:before{
        content: '\f0c9';
        font-family:  FontAwesome;
        line-height: 40px;
    }
    .menu-toggle.active:before{
        content: '\f00d';
        font-family:  FontAwesome;
        line-height: 40px;
    }
    nav {
        display: none;
    }
    nav.active {
        display: block;
        width: 100%;
    }
    nav.active ul {
        display: block;
        
    }
    nav.active ul li a {
        margin: 0;
        
    }
}

答案 2 :(得分:-1)

您只需要为容器设置更大的宽度即可。

要解决您的问题,

@media( max-width: 768px){
    .menu-toggle{
        width: 400px;
    }
}

答案 3 :(得分:-1)

嗨,您能按照以下HTML结构进行操作吗?

<header>
    <a href="#" class="logo">Logo</a>
    <div class="menu-toggle"></div>
      <nav>
        <ul>
          <li><a href="#" class="active">Home</a></li>
          <li><a href="#">About</a></li>
          <li><a href="#">Services</a></li>
          <li><a href="#">Team</a></li>
          <li><a href="#">Portfolio</a></li>
          <li><a href="#">Contact</a></li>
        </ul>
      </nav>
      <div class="clearfix"></div>   

  </header>