2016-11-23 11 views
3

私はスマートフォンの画面サイズの@mediaスクリーンとのメニューダウン私のドロップが応答したいと思います(最大幅:360px):スマートフォンの画面サイズに応じてドロップダウンメニューを作成するにはどうすればよいですか?

誰かがメニューの 私の現在のHTML5のマークアップはこれです、これが可能であるかを教えてくださいすることができ
<div id="menu" > 
<nav id="primary_nav_wrap"> 
<ul> 
<li class="currentmenuitem"><a href="#">Home</a></li> 
<li><a href="aboutus.html">about us</a></li> 
<li><a href="#">day course</a> 
<ul> 
    <li class="submenu"><a href="threedaycourse.html">3 Day Course 
    </a></li> 
    <li class="submenu"><a href="#">6 Day Course</a></li> 
    </ul></li> 
    <li><a href="#">short course</a> 
    <ul> 
    <li class="submenu"><a href="#">Pasta course</a></li> 
    <li class="submenu"><a href="#">Pizza course</a></li> 
    <li class="submenu"><a href="#">Fettucine course</a></li> 
    </ul></li> 
    <li><a href="#">Tours</a></li> 
    <li><a href="#">recipes</a></li> 
    <li><a href="#">reviews</a></li> 
    <li><a href="contact.html">Contact Us</a></li> 
    <li class="last"><a href="location.html">Location</a></li> 
    </ul> 
    </nav></div> 

CSSスタイルは以下の通りです:

#menu{ 
    width:960px; 
    margin-left:auto; 
    margin-right:auto; 
    text-align:center; 
    position: relative; 
    z-index:1;} 
    #primary_nav_wrap{ 
    margin-left:auto; 
    margin-right:auto; 
    margin-top:5px; 
    text-align:center; 
    /*margin-left:50px; */} 

    #primary_nav_wrap ul{ 
    list-style:none; 
    position:relative; 
    /*float:left;*/ 
    text-align: center; 
    margin:0; 
    padding:0;} 


    #primary_nav_wrap ul a{ 
    /*display:block;*/ 
    color:#333; 
    text-decoration:none; 
    font-weight:500; 
    font-size:14px; 
    text-transform: uppercase; 
    line-height:32px; 
    padding-top:10px; 
    font-family:'Raleway',sans-serif; 
    display: inline-block;} 

    #primary_nav_wrap ul li{ 
    display:inline-block; 
    position:relative; 
    /*float:left;*/ 
    margin:0px; 
    padding:0px;} 

    #primary_nav_wrap ul li:after{ 
    margin-left: 10px; 
    margin-right: 10px; 
    content: " | ";} 

    #primary_nav_wrap ul li.last:after{content: none !important;} 


    #primary_nav_wrap ul li li.submenu:after{content: none !important;} 

    #primary_nav_wrap ul li a:hover{ 
    background:#efefef;} 

    #primary_nav_wrap ul ul{ 
    display:none; 
    position:absolute; 
    top:100%; 
    left:0; 
    background:#fff; 
    opacity: .8; 
    padding:0;} 

    #primary_nav_wrap ul ul li{ 
    float:none; 
    text-align: left; 
    width:200px;} 

    #primary_nav_wrap ul ul a{ 
    line-height:120%; 
    padding:10px 15px;} 

    #primary_nav_wrap ul ul ul{ 
    top:0; 
    left:100%;} 

    #primary_nav_wrap ul li:hover ul{ 
    display:inline-block;} 
+0

を見るためにサイズを変更

@media screen and (max-width: 360px) { . . . } 

クリック実行コードスニペットとページ全体、それはより敏感になります応答デバイス上のメニューhtmlとcssのすべてのコードを提供する方が良い。 –

答えて

1

あなたは、画面の幅を確認することができ、それが一定量以下だ場合(この場合は、500pxなど)、そして(CSSを変更します高さでもこれを行うことができます)

@media screen and (max-width: 500px) { 
    // Change element CSS here 
} 
0

ページ幅が<の場合にトリガーとなるメディアクエリを使用し、クエリの外観を変更します。 は#menuwidth:100%;を与えることは、あなたが見せたいんか、それが依存変化

#menu{ 
 
    width:100%; 
 
    margin-left:auto; 
 
    margin-right:auto; 
 
    text-align:center; 
 
    position: relative; 
 
    z-index:1;} 
 
    #primary_nav_wrap{ 
 
    margin-left:auto; 
 
    margin-right:auto; 
 
    margin-top:5px; 
 
    text-align:center; 
 
    /*margin-left:50px; */} 
 

 
    #primary_nav_wrap ul{ 
 
    list-style:none; 
 
    position:relative; 
 
    /*float:left;*/ 
 
    text-align: center; 
 
    margin:0; 
 
    padding:0;} 
 

 

 
    #primary_nav_wrap ul a{ 
 
    /*display:block;*/ 
 
    color:#333; 
 
    text-decoration:none; 
 
    font-weight:500; 
 
    font-size:14px; 
 
    text-transform: uppercase; 
 
    line-height:32px; 
 
    padding-top:10px; 
 
    font-family:'Raleway',sans-serif; 
 
    display: inline-block;} 
 

 
    #primary_nav_wrap ul li{ 
 
    display:inline-block; 
 
    position:relative; 
 
    /*float:left;*/ 
 
    margin:0px; 
 
    padding:0px;} 
 

 
    #primary_nav_wrap ul li:after{ 
 
    margin-left: 10px; 
 
    margin-right: 10px; 
 
    content: " | ";} 
 

 
    #primary_nav_wrap ul li.last:after{content: none !important;} 
 

 

 
    #primary_nav_wrap ul li li.submenu:after{content: none !important;} 
 

 
    #primary_nav_wrap ul li a:hover{ 
 
    background:#efefef;} 
 

 
    #primary_nav_wrap ul ul{ 
 
    display:none; 
 
    position:absolute; 
 
    top:100%; 
 
    left:0; 
 
    background:#fff; 
 
    opacity: .8; 
 
    padding:0;} 
 

 
    #primary_nav_wrap ul ul li{ 
 
    float:none; 
 
    text-align: left; 
 
    width:200px;} 
 

 
    #primary_nav_wrap ul ul a{ 
 
    line-height:120%; 
 
    padding:10px 15px;} 
 

 
    #primary_nav_wrap ul ul ul{ 
 
    top:0; 
 
    left:100%;} 
 

 
    #primary_nav_wrap ul li:hover ul{ 
 
    display:inline-block;} 
 

 
    #nav-toggle{ 
 
     position: fixed; 
 
     margin: 0; 
 
     padding: 10px; 
 
     z-index: 99999; 
 
     background: darkgrey; 
 
     color: white; 
 
     cursor: pointer; 
 
     display: none; 
 
    } 
 

 
@media screen and (max-width: 360px) { 
 
    
 
    nav{ 
 
    display: none; 
 
    } 
 
    
 
    input[type=checkbox]:checked ~ nav { 
 
    display: block; 
 
    } 
 
    
 
    nav ul{ 
 
    width: 100%; 
 
    } 
 
    
 
    #nav-toggle{ 
 
    padding: 20px; 
 
    display: block; 
 
    } 
 
    
 
    nav{ 
 
    padding-top: 60px; 
 
    width: 100%; 
 
    } 
 
    
 
    #primary_nav_wrap ul li:after{ 
 
    display: none; 
 
    } 
 
    
 
    #primary_nav_wrap ul li{ 
 
    width: 100%; 
 
    } 
 

 
}
<div id="menu" > 
 
    <input type="checkbox" id="nav-toggle"><label for="nav-toggle"><div id="nav-toggle">Menu</div></label> 
 

 
    <nav id="primary_nav_wrap"> 
 
    <ul> 
 
     <li class="currentmenuitem"><a href="#">Home</a></li> 
 
     <li><a href="aboutus.html">about us</a></li> 
 
     <li><a href="#">day course</a> 
 
    <ul> 
 
     <li class="submenu"><a href="threedaycourse.html">3 Day Course</a></li> 
 
     <li class="submenu"><a href="#">6 Day Course</a></li> 
 
    </ul></li> 
 
     <li><a href="#">short course</a> 
 
    <ul> 
 
     <li class="submenu"><a href="#">Pasta course</a></li> 
 
     <li class="submenu"><a href="#">Pizza course</a></li> 
 
     <li class="submenu"><a href="#">Fettucine course</a></li> 
 
    </ul></li> 
 
     <li><a href="#">Tours</a></li> 
 
     <li><a href="#">recipes</a></li> 
 
     <li><a href="#">reviews</a></li> 
 
     <li><a href="contact.html">Contact Us</a></li> 
 
     <li class="last"><a href="location.html">Location</a></li> 
 
    </ul> 
 
    </nav> 
 
</div>

+0

うわー!できます!大変ありがとうございました!あなたが変えた主なものは何か教えてください。私はそれから学ぶことができます。私はあなたがメニューのマークアップにチェックボックスの入力を入れているのを見る。 CSSのその他の変更は? –

+0

@Robert [W3Schools-Media Query](http://www.w3schools.com/css/css_rwd_mediaqueries.asp)と、input [type = checkbox]:checked〜nav'がどのように動作するかを調べたjsfiddleをお勧めします[JSfiddle](http://jsfiddle.net/5FzRL/4/) – JSouthward

関連する問題