2017-09-16 3 views
1

Ich versuche, eine Navbar mit Mega-Menü und normalen Menü aber das Problem ist in meinem Mega-Menü Ich will die li und alle Element zusammen angezeigt werden, aber in der normalen Menü möchte ich Das ul Element wird nur angezeigt, wenn li schwebt.Dual Normal und Mega Menü

Und ich kann nicht verwalten die CSS des ersten zu vermeiden stören die zweite:

html,body,nav, ul, li, a, span{ 
 
    margin:0; padding:0; 
 
} 
 
body{ 
 
    font-family:helvetica; 
 
    font-size:16px; 
 
} 
 
nav ul { 
 
    background-color:#444; 
 
    display:flex; 
 
    flex-direction:column; 
 
} 
 
nav ul li{ 
 
    list-style-type: none; 
 
} 
 
nav ul li a{ 
 
    padding:.8rem 1rem; 
 
    display:block; 
 
    text-decoration: none; 
 
    color:#f9f9f9; 
 
} 
 
nav ul li:hover{ 
 
    background:rgba(0,0,0, .25); 
 
} 
 

 

 
nav ul li:hover div.sf-mega { 
 
    top: 100%; 
 
} 
 

 

 
nav div.sf-mega ul { 
 
    width: 25%; 
 
    margin-bottom: 40px; 
 
    color: #000; 
 
    box-shadow: none; 
 
} 
 

 
nav div.sf-mega h4 { 
 
    margin-bottom: 15px; 
 
    text-transform: uppercase; 
 
} 
 

 
nav div.sf-mega ul li { 
 
    display: block; 
 
} 
 

 
nav div.sf-mega ul li a { 
 
    margin-top: 10px; 
 
    transition: 0.5s; 
 
    color: #000; 
 
} 
 

 
nav div.sf-mega ul li a:hover { 
 
    color: #4096ee; 
 
} 
 

 
@media only screen and (max-width:480px){ 
 
    .has_children ul li a{ 
 
    padding-left:2rem; 
 
    } 
 
    
 
    .has_children ul .has_children ul a{ 
 
    padding-left:3rem; 
 
    } 
 
    .arrow-down::after{ 
 
    content:"\f107"; 
 
    } 
 
} 
 

 
@media only screen and (min-width:480px){ 
 
    nav ul{ 
 
    flex-direction:row; 
 

 
    } 
 
    nav ul li{ 
 
    position:relative; 
 
    flex:1 0 auto; 
 
    text-align:left; 
 
    } 
 
    .has_children ul, .has_children ul .has_children ul{ 
 
    display:none; 
 
    width:100%; 
 
    position:absolute; 
 
    } 
 
    .has_children ul .has_children ul{ 
 
    left:100%; 
 
    top:0; 
 
    } 
 
    nav ul li:hover ul, .has_children ul .has_children:hover ul{ 
 
    display:flex; 
 
    flex-direction:column; 
 
    } 
 
    
 
}
<nav id="site-navigation" class="main-navigation" role="navigation" aria-label="Menu supérieur"> 
 
<ul id="top-menu" class="menu"><li a="" id="nav-menu-item-2105" class="main-menu-item menu-first menu-item-depth-0 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children has_children mega2"><a href="http://localhost/wordpress/commande/" class="menu-link main-menu-link"><span>Commande</span></a><div class="sf-mega"><div class="sf-mega-inner clearfix"> 
 
<ul class="navi first menu-depth-1"> 
 
\t <li a="" id="nav-menu-item-2106" class=" menu-item-depth-1 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children has_children normal_menu_item"><a href="http://localhost/wordpress/panier/" class="menu-link sub-menu-link"><span>Panier</span></a> 
 
\t <ul class="navi navi menu-depth-2"> 
 
\t \t <li a="" id="nav-menu-item-2107" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/boutique/" class="menu-link sub-menu-link"><span>Boutique</span></a></li> 
 
\t \t <li a="" id="nav-menu-item-2108" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/blog/" class="menu-link sub-menu-link"><span>Blog</span></a></li> 
 
\t \t <li a="" id="nav-menu-item-2109" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/about/page-markup-and-formatting/" class="menu-link sub-menu-link"><span>Page Markup And Formatting</span></a></li> 
 
\t </ul> 
 
</li> 
 
\t <li a="" id="nav-menu-item-2113" class=" menu-item-depth-1 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children has_children normal_menu_item"><a href="http://localhost/wordpress/panier/" class="menu-link sub-menu-link"><span>Panier</span></a> 
 
\t <ul class="navi navi menu-depth-2"> 
 
\t \t <li a="" id="nav-menu-item-2112" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/level-1/level-2/level-3a/" class="menu-link sub-menu-link"><span>Level 3a</span></a></li> 
 
\t \t <li a="" id="nav-menu-item-2111" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/level-1/level-2/level-3b/" class="menu-link sub-menu-link"><span>Level 3b</span></a></li> 
 
\t \t <li a="" id="nav-menu-item-2110" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/about/page-image-alignment/" class="menu-link sub-menu-link"><span>Page Image Alignment</span></a></li> 
 
\t </ul> 
 
</li> 
 
</ul> 
 
</div></div></li> 
 
<li a="" id="nav-menu-item-2114" class="main-menu-item menu-item-depth-0 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children has_children normal_menu_item"><a href="http://localhost/wordpress/boutique/" class="menu-link main-menu-link"><span>Boutique</span></a> 
 
<ul class="navi first menu-depth-1"> 
 
\t <li a="" id="nav-menu-item-2115" class=" menu-item-depth-1 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children has_children normal_menu_item"><a href="http://localhost/wordpress/page-d-exemple/" class="menu-link sub-menu-link"><span>Page d’exemple</span></a> 
 
\t <ul class="navi navi menu-depth-2"> 
 
\t \t <li a="" id="nav-menu-item-2116" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/page-b/" class="menu-link sub-menu-link"><span>Page B</span></a></li> 
 
\t </ul> 
 
</li> 
 
</ul> 
 
</li> 
 
</ul> 
 
</nav>

klar zu sein, ich versuche, ein Mega-Menü für commande zu haben und ein normales Menü für Boutique.

enter image description here

+0

Um ehrlich zu sein, es ist wirklich schwer zu verstehen, was Sie zu tun versuchen. Kannst du deine Frage etwas umschreiben? –

+1

@ Dejan.S Ich versuche am Ende zusammenzufassen. –

+0

Und was ist das Problem mit Ihrem Menü, das Sie haben? Für mich scheint es so, als würde es funktionieren wie erwartet. Du schwebst auf "commande", es fällt runter, du schwebst auf panier, es dehnt sich auf die nächste Ebene aus. Also, was ist das Problem –

Antwort

1

Vielleicht möchten Sie können die Stile neu zu schreiben, das mega Menü und die normale Menü Arten getrennt zu halten, aber ich habe einige Debug und hinzugefügt die zeigt, die unten an min-width:480px Medien Abfrage gemacht mega Menü in der Desktop-Ansicht auf schweben:

.has_children:hover .sf-mega ul { 
    display: flex; 
    width: 100%; 
    flex-direction: row; 
    } 
    .has_children:hover .sf-mega ul .has_children ul { 
    display: flex; 
    flex-direction: column; 
    top: initial; 
    left: 0; 
    } 

Siehe Demo unter:

html, 
 
body, 
 
nav, 
 
ul, 
 
li, 
 
a, 
 
span { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 
body { 
 
    font-family: helvetica; 
 
    font-size: 16px; 
 
} 
 

 
nav ul { 
 
    background-color: #444; 
 
    display: flex; 
 
    flex-direction: column; 
 
} 
 

 
nav ul li { 
 
    list-style-type: none; 
 
} 
 

 
nav ul li a { 
 
    padding: .8rem 1rem; 
 
    display: block; 
 
    text-decoration: none; 
 
    color: #f9f9f9; 
 
} 
 

 
nav ul li:hover { 
 
    background: rgba(0, 0, 0, .25); 
 
} 
 

 
nav ul li:hover div.sf-mega { 
 
    top: 100%; 
 
} 
 

 
nav div.sf-mega ul { 
 
    width: 25%; 
 
    margin-bottom: 40px; 
 
    color: #000; 
 
    box-shadow: none; 
 
} 
 

 
nav div.sf-mega h4 { 
 
    margin-bottom: 15px; 
 
    text-transform: uppercase; 
 
} 
 

 
nav div.sf-mega ul li { 
 
    display: block; 
 
} 
 

 
nav div.sf-mega ul li a { 
 
    margin-top: 10px; 
 
    transition: 0.5s; 
 
    color: #000; 
 
} 
 

 
nav div.sf-mega ul li a:hover { 
 
    color: #4096ee; 
 
} 
 

 
@media only screen and (max-width:480px) { 
 
    .has_children ul li a { 
 
    padding-left: 2rem; 
 
    } 
 
    .has_children ul .has_children ul a { 
 
    padding-left: 3rem; 
 
    } 
 
    .arrow-down::after { 
 
    content: "\f107"; 
 
    } 
 
} 
 

 
@media only screen and (min-width:480px) { 
 
    nav ul { 
 
    flex-direction: row; 
 
    } 
 
    nav ul li { 
 
    position: relative; 
 
    flex: 1 0 auto; 
 
    text-align: left; 
 
    } 
 
    .has_children ul, 
 
    .has_children ul .has_children ul { 
 
    display: none; 
 
    width: 100%; 
 
    position: absolute; 
 
    } 
 
    .has_children ul .has_children ul { 
 
    left: 100%; 
 
    top: 0; 
 
    } 
 
    nav ul li:hover ul, 
 
    .has_children ul .has_children:hover ul { 
 
    display: flex; 
 
    flex-direction: column; 
 
    } 
 
    
 
    /* ADDED */ 
 
    .has_children:hover .sf-mega ul { 
 
    display: flex; 
 
    width: 100%; 
 
    flex-direction: row; 
 
    } 
 
    .has_children:hover .sf-mega ul .has_children ul { 
 
    display: flex; 
 
    flex-direction: column; 
 
    top: initial; 
 
    left: 0; 
 
    } 
 
    .sf-mega ul li a { 
 
    white-space: nowrap; 
 
    text-overflow: ellipsis; 
 
    overflow: hidden; 
 
} 
 
}
<nav id="site-navigation" class="main-navigation" role="navigation" aria-label="Menu supérieur"> 
 
    <ul id="top-menu" class="menu"> 
 
    <li a="" id="nav-menu-item-2105" class="main-menu-item menu-first menu-item-depth-0 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children has_children mega2"><a href="http://localhost/wordpress/commande/" class="menu-link main-menu-link"><span>Commande</span></a> 
 
     <div class="sf-mega"> 
 
     <div class="sf-mega-inner clearfix"> 
 
      <ul class="navi first menu-depth-1"> 
 
      <li a="" id="nav-menu-item-2106" class=" menu-item-depth-1 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children has_children normal_menu_item"><a href="http://localhost/wordpress/panier/" class="menu-link sub-menu-link"><span>Panier</span></a> 
 
       <ul class="navi navi menu-depth-2"> 
 
       <li a="" id="nav-menu-item-2107" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/boutique/" class="menu-link sub-menu-link"><span>Boutique</span></a></li> 
 
       <li a="" id="nav-menu-item-2108" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/blog/" class="menu-link sub-menu-link"><span>Blog</span></a></li> 
 
       <li a="" id="nav-menu-item-2109" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/about/page-markup-and-formatting/" class="menu-link sub-menu-link"><span>Page Markup And Formatting</span></a></li> 
 
       </ul> 
 
      </li> 
 
      <li a="" id="nav-menu-item-2113" class=" menu-item-depth-1 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children has_children normal_menu_item"><a href="http://localhost/wordpress/panier/" class="menu-link sub-menu-link"><span>Panier</span></a> 
 
       <ul class="navi navi menu-depth-2"> 
 
       <li a="" id="nav-menu-item-2112" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/level-1/level-2/level-3a/" class="menu-link sub-menu-link"><span>Level 3a</span></a></li> 
 
       <li a="" id="nav-menu-item-2111" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/level-1/level-2/level-3b/" class="menu-link sub-menu-link"><span>Level 3b</span></a></li> 
 
       <li a="" id="nav-menu-item-2110" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/about/page-image-alignment/" class="menu-link sub-menu-link"><span>Page Image Alignment</span></a></li> 
 
       </ul> 
 
      </li> 
 
      </ul> 
 
     </div> 
 
     </div> 
 
    </li> 
 
    <li a="" id="nav-menu-item-2114" class="main-menu-item menu-item-depth-0 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children has_children normal_menu_item"><a href="http://localhost/wordpress/boutique/" class="menu-link main-menu-link"><span>Boutique</span></a> 
 
     <ul class="navi first menu-depth-1"> 
 
     <li a="" id="nav-menu-item-2115" class=" menu-item-depth-1 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children has_children normal_menu_item"><a href="http://localhost/wordpress/page-d-exemple/" class="menu-link sub-menu-link"><span>Page d’exemple</span></a> 
 
      <ul class="navi navi menu-depth-2"> 
 
      <li a="" id="nav-menu-item-2116" class=" navi menu-item-depth-2 menu-item menu-item-type-post_type menu-item-object-page normal_menu_item"><a href="http://localhost/wordpress/page-b/" class="menu-link sub-menu-link"><span>Page B</span></a></li> 
 
      </ul> 
 
     </li> 
 
     </ul> 
 
    </li> 
 
    </ul> 
 
</nav>

+0

Danke das ist genau das, was ich gesucht habe. Ich habe eine letzte Frage kukkuz gibt es eine Möglichkeit, die gleiche Höhe für die Spalte zu haben. Die zwei Spalten in Commande haben unterschiedliche Höhe hier: https://codepen.io/anon/pen/MEaaJr –

+0

Ich habe ein Bild in der Frage hinzugefügt, um Ihnen die Höhe zu zeigen, über die ich spreche –

+0

@michellompret yup bekam es, aber sieht schwierig aus, um die gleiche Höhe in allen Fällen im aktuellen Design zu gewährleisten ... vielleicht können Sie '.sf-mega ul li a verwenden { white-space: nowrap; Textüberlauf: Ellipse; Überlauf: versteckt; } 'siehe bearbeitete Antwort oben ... – kukkuz