2017-12-19 23 views
2

私は応答性のあるナビゲーションHTMLを持っています。私はハンバーガーメニューを1050px未満の画面サイズで表示することに成功し、メニューのオンとオフを切り替えます。問題は、画面を大きくする前にハンバーガーメニューを閉じないと、navメニューがdisplay:noneモードで止まって表示されないということです。それで、ナビゲーションが突然消えてしまうように見えます。私は通常のCSSは画面サイズが大きくなると思っていましたが、スクリプトの中にプロパティが設定されているためかもしれません。誰も私がこれを回避するのを助けることができますか?私はレスポンシブルデザインにはかなり新しいです。画面のサイズが大きくなると消えていく

HTML:

<nav> 
<div class="navigation"> 
    <a href="/index.html"> <img class="nav-img" src="/incl/image.png"> </a> 

    <button id="mobile" type="button" onclick="toggleFunction()"> 
      <img src="/incl/menu.png" width="35px" height="35px" alt="menu"> 
    </button> 

    <ul id="nav-list"> 
     <li> <a href="/proposer/">Proposer</a> </li> 
     <li> <a href="/cda/">Archive</a> </li> 
     <li> <a href="/ciao/">Data<br/>Analysis</a> </li> 
     <li> <a href="/cal/">Instruments and<br/>Calibration</a> </li> 
     <li> <a href="/public/">For The<br/>Public</a> </li> 
    </ul> 
</div></nav> 

<script> 
    function toggleFunction() { 
     var x = document.getElementById('nav-list'); 

     if (x.style.display === 'block') { 
      x.style.display = 'none'; 
     } else { 
      x.style.display = 'block'; 
     } 
    } 
</script> 

はCSS:

#nav-list { 
list-style-type: none; 
padding-top: 30px; 
padding-right: 20px; 
margin: 0px; 
overflow: hidden; 
display: inline-table; 
float: right; 
} 

#nav-list li { 
display: table-cell; 
vertical-align: middle; 
padding: 0px 15px; 
margin: 0px; 
text-align: center; 
line-height: 110%; 
font-size: 1.3em; 
font-family: Helvetica, Arial, sans-serif; 
font-weight: 400; 
} 

#mobile { 
display: none; 
} 

@media only screen and (max-width: 1050px) { 
.nav-img { 
    margin: 0px 5px 5px 5px; 
} 

#mobile { 
    display: inline; 
    float: right; 
    background-color: transparent; 
    border: 1px solid #333; 
    border-radius: 5px; 
    margin: 10px 10px 10px 0px; 
    padding: 5px; 
} 

#nav-list { 
    list-style-type: none; 
    margin: 0px; 
    padding: 0px; 
    overflow: hidden; 
    display: none; 
    float: none 
} 

#nav-list li { 
    display: block; 
    text-align: center; 
    margin: 10px 0px 10px 0px; 
    line-height: 110%; 
    font-size: 1em; 
} 

答えて

0

これを解決する最も簡単な方法は、#nav-list要素にtoggling a classです。

この変更では、クラスはモバイルメディアクエリのCSSにのみ意味があり、#nav-listからdisplay: blockに変更されます。トグルされているかどうかにかかわらず、クラスは1050ピクセルを超えるスクリーンには影響しません。勤務

function toggleFunction() { 
 
    var x = document.getElementById('nav-list'); 
 
    x.classList.toggle('show'); 
 
}
#nav-list { 
 
    list-style-type: none; 
 
    padding-top: 30px; 
 
    padding-right: 20px; 
 
    margin: 0px; 
 
    overflow: hidden; 
 
    display: inline-table; 
 
    float: right; 
 
} 
 

 
#nav-list li { 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
    padding: 0px 15px; 
 
    margin: 0px; 
 
    text-align: center; 
 
    line-height: 110%; 
 
    font-size: 1.3em; 
 
    font-family: Helvetica, Arial, sans-serif; 
 
    font-weight: 400; 
 
} 
 

 
#mobile { 
 
    display: none; 
 
} 
 

 
@media only screen and (max-width: 1050px) { 
 
    .nav-img { 
 
    margin: 0px 5px 5px 5px; 
 
    } 
 

 
    #mobile { 
 
    display: inline; 
 
    float: right; 
 
    background-color: transparent; 
 
    border: 1px solid #333; 
 
    border-radius: 5px; 
 
    margin: 10px 10px 10px 0px; 
 
    padding: 5px; 
 
    } 
 

 
    #nav-list { 
 
    list-style-type: none; 
 
    margin: 0px; 
 
    padding: 0px; 
 
    overflow: hidden; 
 
    display: none; 
 
    float: none 
 
    } 
 

 
    /* show navigation based on class */ 
 
    #nav-list.show { 
 
    display: block; 
 
    } 
 

 
    #nav-list li { 
 
    display: block; 
 
    text-align: center; 
 
    margin: 10px 0px 10px 0px; 
 
    line-height: 110%; 
 
    font-size: 1em; 
 
    } 
 
}
<nav> 
 
    <div class="navigation"> 
 
    <a href="/index.html"> <img class="nav-img" src="/incl/image.png"> </a> 
 

 
    <button id="mobile" type="button" onclick="toggleFunction()"> 
 
      <img src="/incl/menu.png" width="35px" height="35px" alt="menu"> 
 
    </button> 
 

 
    <ul id="nav-list"> 
 
     <li> <a href="/proposer/">Proposer</a> </li> 
 
     <li> <a href="/cda/">Archive</a> </li> 
 
     <li> <a href="/ciao/">Data<br/>Analysis</a> </li> 
 
     <li> <a href="/cal/">Instruments and<br/>Calibration</a> </li> 
 
     <li> <a href="/public/">For The<br/>Public</a> </li> 
 
    </ul> 
 
    </div> 
 
</nav>

+0

!ありがとうございました – got2b

関連する問題