2017-07-09 12 views
0

こんにちは私はこのWebプログラミングでは本当に新しく、ちょうど数日前に勉強して、敏感なnavbarを作ろうとしました。そして私はw3schoolに関するチュートリアルを見つけ、それに従い、いくつかのコードを変更しましたが、それは意図したとおりに動作しませんでした。メニューは希望の幅で折りたたまれますが、ハンバーガーメニューは表示されません。私はすでに私のクラスにそれを変更して一致させると思うが、他に何が間違っているのか分からない。ここでハンバーガーメニューは反応的なナビゲーションバーに表示されません

は、私がこれまで試してみましたです:

.navSection { 
 
    width: 100%; 
 
    display: inline-table; 
 
    line-height: 30px; 
 
    background: #1c948a; 
 
    z-index: 3; 
 
    box-shadow: 0px 3px 5px 1px rgba(0, 0, 0, .3); 
 
} 
 

 
.navMenu .icon{ 
 
    display: none; 
 
} 
 

 
@media screen and (max-width: 700px) { 
 
    .navMenu ul li:not(:first-child) {display: none;} 
 
    .navMenu ul li.icon { 
 
    float: right; 
 
    display: block; 
 
    } 
 
} 
 

 
@media screen and (max-width: 700px) { 
 
    .navMenu.responsive {position: relative;} 
 
    .navMenu.responsive .icon { 
 
    position: absolute; 
 
    right: 0; 
 
    top: 0; 
 
    } 
 
    .navMenu.responsive ul li { 
 
    float: none; 
 
    display: block; 
 
    text-align: left; 
 
    } 
 
} 
 

 
.navSectionWrapper { 
 
    width: 90%; 
 
    margin: auto; 
 
} 
 

 
.homelink { 
 
    text-decoration: none; 
 
} 
 

 
.navlogo { 
 
    width: 30%; 
 
    height: 70px; 
 
    float: left; 
 
} 
 

 
.logo { 
 
    display: inline-block; 
 
    font-family: "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif; 
 
    color: #2C3E50; 
 
    position: absolute; 
 
} 
 

 
.logoimg { 
 
    height: 70px; 
 
    float: left; 
 
} 
 

 
.logotext { 
 
    font-weight: 600; 
 
    float: right; 
 
    line-height: 70px; 
 
} 
 

 
.logotext>span { 
 
    color: white; 
 
    text-shadow: 2px 2px 2px #33425B; 
 
} 
 

 
.navMenu { 
 
    float: right; 
 
    text-align: center; 
 
    overflow: hidden; 
 
} 
 

 
.navMenu>ul { 
 
    list-style: none; 
 
} 
 

 
.navMenu>ul>li { 
 
    display: inline-block; 
 
    line-height: 70px; 
 
} 
 

 
.navMenu>ul>li>a>span { 
 
    color: white; 
 
    font-weight: 700; 
 
    font-size: 17px 
 
} 
 

 
.navMenu>ul>li>a { 
 
    text-decoration: none; 
 
    color: #2C3E50; 
 
    font-family: "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif; 
 
    font-weight: 600; 
 
    margin: 10px 
 
} 
 

 
.navMenu>ul>li>a:hover { 
 
    color: snow; 
 
}
<div class="navSection"> 
 
     <div class="navSectionWrapper"> 
 
      <div class="navlogo"> 
 
       <a href="#" class="homelink"> 
 
        <div class="logo"> 
 
         <img src="img/logo.png" class="logoimg"> 
 
         <h2 class="logotext">Let's<span>Go</span></h2> 
 
        </div> 
 
       </a> 
 
      </div> 
 
      <div class="navMenu" id="mynavMenu"> 
 
       <ul> 
 
        <li><a href="#">Home</a></li> 
 
        <li><a href="#">Features</a></li> 
 
        <li><a href="#">About</a></li> 
 
        <li><a href="#">+<span>Download</span></a></li> 
 
        <li><a href="javascript:void(0);" class="icon" onclick="myFunction()">&#9776;</a></li> 
 
       </ul> 
 
      </div> 
 
     </div> 
 
    </div> 
 
<script> 
 
     function myFunction() { 
 
      var x = document.getElementById("mynavMenu"); 
 
      if (x.className === "navMenu") { 
 
       x.className += " responsive"; 
 
      } else { 
 
       x.className = "navMenu"; 
 
      } 
 
     } 
 
</script>

ありがとう

答えて

0

あなたのHTMLはa.iconを使用していますが、li.iconとCSSでターゲットとしています。 class="icon"aの代わりにliに移動し、.iconのCSSを少し修正しました。あなたは応答ビューで:not(:first-child())を隠していたので、が:last-childであるか、その代わりに:not(.icon)を使用しているので、:not(:last-child)を使用します。

.navSection { 
 
    width: 100%; 
 
    display: inline-table; 
 
    line-height: 30px; 
 
    background: #1c948a; 
 
    z-index: 3; 
 
    box-shadow: 0px 3px 5px 1px rgba(0, 0, 0, .3); 
 
} 
 

 
.navMenu .icon{ 
 
    display: none; 
 
    float: right; 
 
} 
 

 
@media screen and (max-width: 700px) { 
 
    .navMenu ul li:not(.icon) {display: none;} 
 
    .navMenu ul li.icon { 
 
    display: block; 
 
    } 
 
} 
 

 
@media screen and (max-width: 700px) { 
 
    .navMenu.responsive {position: relative;} 
 
    .navMenu.responsive .icon { 
 
    position: absolute; 
 
    right: 0; 
 
    top: 0; 
 
    } 
 
    .navMenu.responsive ul li { 
 
    float: none; 
 
    display: block; 
 
    text-align: left; 
 
    } 
 
} 
 

 
.navSectionWrapper { 
 
    width: 90%; 
 
    margin: auto; 
 
} 
 

 
.homelink { 
 
    text-decoration: none; 
 
} 
 

 
.navlogo { 
 
    width: 30%; 
 
    height: 70px; 
 
    float: left; 
 
} 
 

 
.logo { 
 
    display: inline-block; 
 
    font-family: "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif; 
 
    color: #2C3E50; 
 
    position: absolute; 
 
} 
 

 
.logoimg { 
 
    height: 70px; 
 
    float: left; 
 
} 
 

 
.logotext { 
 
    font-weight: 600; 
 
    float: right; 
 
    line-height: 70px; 
 
} 
 

 
.logotext>span { 
 
    color: white; 
 
    text-shadow: 2px 2px 2px #33425B; 
 
} 
 

 
.navMenu { 
 
    float: right; 
 
    text-align: center; 
 
    overflow: hidden; 
 
} 
 

 
.navMenu>ul { 
 
    list-style: none; 
 
} 
 

 
.navMenu>ul>li { 
 
    display: inline-block; 
 
    line-height: 70px; 
 
} 
 

 
.navMenu>ul>li>a>span { 
 
    color: white; 
 
    font-weight: 700; 
 
    font-size: 17px 
 
} 
 

 
.navMenu>ul>li>a { 
 
    text-decoration: none; 
 
    color: #2C3E50; 
 
    font-family: "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif; 
 
    font-weight: 600; 
 
    margin: 10px 
 
} 
 

 
.navMenu>ul>li>a:hover { 
 
    color: snow; 
 
}
<div class="navSection"> 
 
     <div class="navSectionWrapper"> 
 
      <div class="navlogo"> 
 
       <a href="#" class="homelink"> 
 
        <div class="logo"> 
 
         <img src="img/logo.png" class="logoimg"> 
 
         <h2 class="logotext">Let's<span>Go</span></h2> 
 
        </div> 
 
       </a> 
 
      </div> 
 
      <div class="navMenu" id="mynavMenu"> 
 
       <ul> 
 
        <li><a href="#">Home</a></li> 
 
        <li><a href="#">Features</a></li> 
 
        <li><a href="#">About</a></li> 
 
        <li><a href="#">+<span>Download</span></a></li> 
 
        <li class="icon"><a href="javascript:void(0);" onclick="myFunction()">&#9776;</a></li> 
 
       </ul> 
 
      </div> 
 
     </div> 
 
    </div> 
 
<script> 
 
     function myFunction() { 
 
      var x = document.getElementById("mynavMenu"); 
 
      if (x.className === "navMenu") { 
 
       x.className += " responsive"; 
 
      } else { 
 
       x.className = "navMenu"; 
 
      } 
 
     } 
 
</script>

+0

ありがとうございました!私はそれを持っていますが、「あなたのHTMLはa.iconを使用していますが、あなたはli.iconのCSSを使用しています」という部分については少し不明です。それはどこですか?そして、なぜ浮動小数点数を追加しましたか:.navMenu .icon CSSに正しく?それは必要ですか? – RadVolan

+0

@RadVolanよろしくお願いします。 '

  • ' - クラス '.icon'は' a'ですが、あなたのcssセレクタは '.navMenu ul li.icon'です - あなたは' li.icon'にCSSを適用しようとしています。実際には 'a.icon' - 意味がありますか? –

    +0

    うん、 'a' - >'

  • 'のアイコンクラスで動作し、' .navMenu a.icon'を使うことができますか?右? – RadVolan

    関連する問題