2017-10-24 26 views
0

スタイルを変更した後、携帯電話のハンバーガーアイコンが表示されなくなりました。どうすれば元に戻すことができますか?また、メニューの上と下に白いスペースを少し追加するのが最善の方法でしょうが、ポジションを同じに保ちますか?メニューにハンバーガーアイコンが表示されない

HTML:

<input type="checkbox" id="xBxHack" /> 
<nav id="mainNav" class="mainNav"> 
    <div class="container"> 
     <div class="logo"><a href="#">my<strong>Nav</strong></a></div> 
     <label class="navBars" for="xBxHack"> 
      <i class="fa fa-bars"></i> 
     </label> 
     <ul id="menu" class="menu"> 
      <li><a href="#">Home</a></li> 
      <li><a href="#">About</a></li> 
      <li><a href="#">Work</a></li> 
      <li><a href="#">Contact</a></li> 
     </ul> 
    </div> 
</nav> 

CSS:

.mainNav { 
    background: #fff; 
    color: #fff; 
    max-height: 70px; 
    position: relative; 
    top:35%; 
} 
.mainNav a { 
    text-decoration: none; 
} 
.mainNav .logo { 
    display: inline-block; 
    color: #fff; 
    font-size: 1.7em; 
    height: 40px; 
    line-height: 1.55em; 
    letter-spacing: -2px; 
    text-transform: uppercase; 
    padding: 0 10px; 
    z-index: 0; 
    /*POSITION*/ 
    position: relative; 
} 
.mainNav .logo:hover:before { 
    background: #292938; 
} 
.mainNav .logo:before { 
    content: ""; 
    background: #3C91E6; 
    z-index: -1; 
    /*POSITION*/ 
    position: absolute; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
} 
.mainNav .logo a { 
    color: #efefef; 
} 
.mainNav .menu { 
    font-family: 'Montserrat', sans-serif; 
    text-transform:uppercase; 
    letter-spacing:5px; 
    background: #fff; 
    font-size:10px; 
    box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.1); 
    border-top: 1px solid #fff; 
    display: none; 
    list-style: none; 
    margin: 0; 
    padding: 0; 
    text-align: center; 
    /*POSITION*/ 
    position: absolute; 
    top: 60px; 
    right: 0; 
    left: 0; 
} 
.mainNav .menu a { 
    color: #292938; 
    border-bottom: 1px solid #d9d9d9; 
    font-weight: bold; 
    display: block; 
    padding: 15px; 
} 

.mainNav .navBars { 
    display: inline-block; 
    font-size: 1.7em; 
    line-height: 1.5em; 
    float: right; 
    /*USER SELECTION*/ 
    -moz-user-select: none; 
    -ms-user-select: none; 
     user-select: none; 
    -webkit-user-select: none; 
} 

#xBxHack { 
    visibility: hidden; 
    opacity: 0; 
    position: absolute; 
    top: -99999px; 
} 
#xBxHack:checked ~ nav .menu { 
    display: block; 
} 

.container { 
    max-width: 960px; 
    margin: 0 auto; 
    padding: 10px; 
} 

@media screen and (min-width: 600px) { 
    .mainNav { 
    overflow: hidden; 
    } 
    .mainNav .navBars { 
    display: none; 
    } 
    .mainNav .container { 
    padding-top: 0; 
    padding-bottom: 0; 
    } 
    .mainNav .logo { 
    margin: 10px 0; 
    } 
    .mainNav .menu { 
    display: block; 
    box-shadow: none; 
    border: none; 
    float: right; 
    /*POSITION*/ 
    position: static; 
    } 
    .mainNav .menu li { 
    display: inline-block; 
    } 
    .mainNav .menu a { 
    border: none; 
    padding: 20px 10px; 
    } 
} 

JS:あなたは画面が小さいときにアイコンが表示されないことがわかります。このjsfiddleで

$(document).ready(function() { 
    "use strict"; 
    var myNav = { 
     init: function() { 
      this.cacheDOM(); 
      this.browserWidth(); 
      this.bindEvents(); 
     }, 
     cacheDOM: function() { 
      this.navBars = $(".navBars"); 
      this.xBxHack = $("#xBxHack"); 
      this.navMenu = $("#menu"); 
     }, 
     browserWidth: function() { 
      $(window).resize(this.bindEvents.bind(this)); 
     }, 
     bindEvents: function() { 
      var width = window.innerWidth; 

      if (width < 600) { 
       this.navBars.click(this.animate.bind(this)); 
       this.navMenu.hide(); 
       this.xBxHack[0].checked = false; 
      } else { 
       this.resetNav(); 
      } 
     }, 
     animate: function(e) { 
      var checkbox = this.xBxHack[0]; 
      !checkbox.checked ? 
       this.navMenu.slideDown() : 
       this.navMenu.slideUp(); 

     }, 
     resetNav: function() { 
      this.navMenu.show(); 
     } 
    }; 
    myNav.init(); 
}); 

https://jsfiddle.net/quehf3x9/

答えて

0

まず、Font Awesomeライブラリをロードしていることを確認してください。 JSフィドルの例ではロードされていませんでした。そこで私はCDNへのリンクを含んでいました。

第二に、navbarsのためにCSSに、幅、高さ、背景色を追加します。

.mainNav .navBars { 
width: 30px; 
height: 30px; 
color: #111; 
} 

は、実施例のための私の更新JS Fiddleを参照してください。

+0

ありがとうトリックを行います!メニューの上/下に空白を追加する方法を教えてもらえますか? – Melissa

+0

'.mainNav'にいくつかのパディングを追加すると、それが実行されます。たとえば、 'padding:10px 0;'のようなものを追加することができます。更新された[JS Fiddle](https://jsfiddle.net/quehf3x9/4/)の例があります。 –

+0

完璧、ありがとう!おそらく私のOCDは失敗していますが、テキストは中間からちょっと離れていて、少し上にあるように見えます。それ以降は完璧です – Melissa

0

上記のフィディーには2つの問題があります。 1つは、フォントのすばらしいライブラリを含めていないということです。コードはfa fa-barsクラスで何をすべきか分かりません。 jsfiddleで外部ライブラリを含めるには:

  1. は、ファイルがホストされているCDN
  2. コピーを探すファイル
  3. へのパスが外部リソースセクションの左側のサイドバーに貼り付けます。
  4. リソースをフィディルドに追加するには、+アイコンを選択します。

ファイルがロードされたら、クラスが適用されている開発ツール(F12を選択してツールを開く)から見ることができますが、アイコンの色は白です。私はこれらの2つの変更を行い、あなたのフィドルhereを更新しました

label i { 
    color: #333; 
} 

:あなたのようなアイコンを着色するいくつかのCSSを追加したいと思うでしょう。

0

あなたは第二に、アイコンの色が白であるFont Awesomeライブラリ

を含めるために不足している2 THINGS-

まず一つがあります。あなたはライブラリが含まれていても、それを見ることができませんので、色を変更すると<i class="fa fa-bars" style="color:black;"></i>

.mainNav { 
 
    background: #fff; 
 
    color: #fff; 
 
    max-height: 70px; 
 
    position: relative; 
 
    top:35%; 
 
} 
 
.mainNav a { 
 
    text-decoration: none; 
 
} 
 
.mainNav .logo { 
 
    display: inline-block; 
 
    color: #fff; 
 
    font-size: 1.7em; 
 
    height: 40px; 
 
    line-height: 1.55em; 
 
    letter-spacing: -2px; 
 
    text-transform: uppercase; 
 
    padding: 0 10px; 
 
    z-index: 0; 
 
    /*POSITION*/ 
 
    position: relative; 
 
} 
 
.mainNav .logo:hover:before { 
 
    background: #292938; 
 
} 
 
.mainNav .logo:before { 
 
    content: ""; 
 
    background: #3C91E6; 
 
    z-index: -1; 
 
    /*POSITION*/ 
 
    position: absolute; 
 
    top: 0; 
 
    right: 0; 
 
    bottom: 0; 
 
    left: 0; 
 
} 
 
.mainNav .logo a { 
 
    color: #efefef; 
 
} 
 
.mainNav .menu { 
 
    font-family: 'Montserrat', sans-serif; 
 
    text-transform:uppercase; 
 
    letter-spacing:5px; 
 
    background: #fff; 
 
    font-size:10px; 
 
    box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.1); 
 
    border-top: 1px solid #fff; 
 
    display: none; 
 
    list-style: none; 
 
    margin: 0; 
 
    padding: 0; 
 
    text-align: center; 
 
    /*POSITION*/ 
 
    position: absolute; 
 
    top: 60px; 
 
    right: 0; 
 
    left: 0; 
 
} 
 
.mainNav .menu a { 
 
    color: #292938; 
 
    border-bottom: 1px solid #d9d9d9; 
 
    font-weight: bold; 
 
    display: block; 
 
    padding: 15px; 
 
} 
 

 
.mainNav .navBars { 
 
    display: inline-block; 
 
    font-size: 1.7em; 
 
    line-height: 1.5em; 
 
    float: right; 
 
    /*USER SELECTION*/ 
 
    -moz-user-select: none; 
 
    -ms-user-select: none; 
 
     user-select: none; 
 
    -webkit-user-select: none; 
 
} 
 

 
#xBxHack { 
 
    visibility: hidden; 
 
    opacity: 0; 
 
    position: absolute; 
 
    top: -99999px; 
 
} 
 
#xBxHack:checked ~ nav .menu { 
 
    display: block; 
 
} 
 

 
.container { 
 
    max-width: 960px; 
 
    margin: 0 auto; 
 
    padding: 10px; 
 
} 
 

 
@media screen and (min-width: 600px) { 
 
    .mainNav { 
 
    overflow: hidden; 
 
    } 
 
    .mainNav .navBars { 
 
    display: none; 
 
    } 
 
    .mainNav .container { 
 
    padding-top: 0; 
 
    padding-bottom: 0; 
 
    } 
 
    .mainNav .logo { 
 
    margin: 10px 0; 
 
    } 
 
    .mainNav .menu { 
 
    display: block; 
 
    box-shadow: none; 
 
    border: none; 
 
    float: right; 
 
    /*POSITION*/ 
 
    position: static; 
 
    } 
 
    .mainNav .menu li { 
 
    display: inline-block; 
 
    } 
 
    .mainNav .menu a { 
 
    border: none; 
 
    padding: 20px 10px; 
 
    } 
 
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 
 
<input type="checkbox" id="xBxHack" /> 
 
<nav id="mainNav" class="mainNav"> 
 
\t <div class="container"> 
 
\t \t <div class="logo"><a href="#">my<strong>Nav</strong></a></div> 
 
\t \t <label class="navBars" for="xBxHack"> 
 
\t \t \t <i class="fa fa-bars" style="color:black;"></i> 
 
     
 
\t \t </label> 
 
\t \t <ul id="menu" class="menu"> 
 
\t \t \t <li><a href="#">Home</a></li> 
 
\t \t \t <li><a href="#">About</a></li> 
 
\t \t \t <li><a href="#">Work</a></li> 
 
\t \t \t <li><a href="#">Contact</a></li> 
 
\t \t </ul> 
 
\t </div> 
 
</nav>

+0

私のコードを使用してください:https://codepen.io/nullqube/pen/bRjRMKまたはhttps://codepen.io/nullqube/pen/RgMvbW:D – nullqube

関連する問題