2017-01-10 3 views
-1

Ich arbeite an einem Menü. Sie können es hier live sehen: http://lumenis.bondtest.nl/SurgicalWie man die Breite jeder Dropdown-Ebene individuell einstellt

Es geht um diese: enter image description here

Die dritte Ebene Menü hat die gleiche Klasse (Dropdown-Menü), die die Menüs bewirkt genau die gleiche Breite haben. Ich weiß also, was das Problem verursacht, aber ich bin mir nicht sicher, wie ich es lösen soll.

Ich kann das Dropdown-Menü nicht entfernen und gebe ihnen beide eine individuelle Klasse, da Bootstrap mit dieser Klasse arbeitet.

Zum Beispiel:

enter image description here enter image description here

Was es wirklich seltsam aussehen lässt, weil es auf schweben ändert.

Dies ist mein Code:

<nav class="navbar navbar-default lumenisInnerMenu" role="navigation"> 
    <div class="container-fluid"> 
     <div class="navbar-header"> 
       <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse" aria-expanded="false"> 
       <span class="sr-only">Toggle navigation</span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       </button> 
     </div> 
     <div class="collapse navbar-collapse lumenisListItems"> 
      <ul class="nav navbar-nav"> 
       [*>NODE] 
      </ul> 
     </div> 
    </div> 
</nav> 

[>NODE] 
    <li class="[?SELECTED]dir current[/?][?NODE]dropdown-submenu HasChildren child[=DEPTH] dropdownmenu [/?]"> 
    [?ENABLED] 
     <a [?!NODE] href="[=URL]" [/?] class="[?NODE]dropdown-toggle[/?]" data-toggle="dropdown"> 
       <div class="textsubitem"> 
        <span>[=TEXT]</span> 
       </div> 
     </a> 
    [?ELSE] 
     <a href="#" [?NODE] [/?]> [?NODE] 
      <span>[=TEXT]</span>[/?] 
     </a> 
    [/?] 
    [?NODE] 
     <ul class="dropdown-menu dropdown[=DEPTH]" id="[=ID]"> 
      [*>NODE] 
     </ul> 
    [/?] 
    </li> 
[/>] 

Kann mir jemand helfen? Danke im Voraus.

EDIT: ich es wie folgt gelöst:

if ($(window).width() > 960) { 
    var maxWidth = 0; 
    $('.dropdown0').each(function(){ 
     var itemWidth = $(this).outerWidth(true); 
     maxWidth = Math.max(maxWidth, itemWidth) + "px"; 
     $(".dropdown0 > li").css("max-width", maxWidth); 
    }); 
} 

für die größte Breite gesucht und legen Sie die max-width.

+0

Können Sie bitte etwas CSS teilen? Hast du es überhaupt gestylt? –

+0

Jede UL hat auch eine 'dropdown [= DEPTH]' Klasse, also hat die zweite Ebene 'dropdown0', die dritte Ebene hat 'dropdown1', mit der man sie individuell gestalten kann. – Goombah

Antwort

0

Verwenden Sie für die Dropdown-Listen der zweiten Ebene die Klasse dropdown0 und für das Dropdown-Menü der dritten Ebene feste Breiten mit der Klasse dropdown1.

Diese Klassen werden bereits angewendet, sodass Sie sie individuell gestalten können.

+0

Stimmt, das habe ich schon gemacht. Aber ich möchte keine maximale Breite auf dropdown0 oder dropdown1 setzen. Und solange diese 2 Dropdown-Listen das Dropdown-Menü "Klasse" haben, passt sie die Breite automatisch an. –

+0

Die Breite wird automatisch angepasst durch das Dropdown-Menü der Klasse. Wenn Sie nun "dropdown0" oder "dropdown1" nicht verwenden möchten, sollten Sie verschiedene Klassen anwenden oder die dynamischen IDs verwenden, die den Dropdown-Elementen zugewiesen sind. – nashcheez

+0

Siehe den bearbeiteten Post für meine Lösungen –

Verwandte Themen