2. Menülevel

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • m.orange
    Contao-Nutzer
    • 16.09.2009
    • 12

    #1

    2. Menülevel

    Hallo zusammen,

    ich komme bei der Einbundung meines Untermenüs nicht voran, vielleicht weiß von euch jemand an welcher Stelle ich im CSS oder im Template was drehen muß…

    Also eine kurze Erklärung:
    Level 1 hat 4 Menüpunkte, einer davon hat einige Unterpunkte, die entsprechende Einblendung und Markierung dieser klappt soweit auch super.
    Problem dabei ist dann jedoch, dass die Menüpunkte des Level 2, Kindelemente des Level 1 sind.

    So siehts momentan aus:


    So solls werden:




    Ich würde es bevorzugen, wenn Level 2 aus der Level 1 Liste rauskommt, so dass ich es besser platzieren kann.

    Wie kann ich dies realiseren? Anbei ein Bild wie es aussieht bzw. aussehen soll.


    Besten Dank für jeden eurer Tipps,
    m.orange
  • MacKP
    Contao-Yoda
    • 15.06.2009
    • 13315

    #2
    Hallo m.orange,
    naja, so auf dem Trockenen ist mit CSS nicht wirklich praktisch...
    so kann man nur ins blaue reinraten...
    Aber wenn du das anders Positionieren möchtest hilft durchaus 'position'.

    Ansonsten kann ich immer empfehlen bei ner Navi nicht level1 etc. zu benutzen sondern eher ul li -> level1 / ul ul li -> level2 usw... Da geht dann schon einiges variabler als mit level1 etc.

    Wenn du die Navigationsebenen aber komplett voneinander getrennt haben möchtest, aber doch mit dem navigationsmodul arbeiten willst um die Ebenen immer noch in Beziehung zueinander zu haben (also die Klasse .trail wenns nen Unterpunkt ist etc.). Dann empfehle ich erst mal das Tutorial wo aufgezeigt wird wie man was am besten einstellen kann -> http://de.contaowiki.org/typolight/T...vigationsmenue
    Dann legst du einfach für jede Ebene ein NavigationsModul an und positionierst die dann nach deinen Wünschen.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

    Kommentar

    • Sebastian
      Contao-Urgestein
      • 19.06.2009
      • 3361

      #3
      HI

      vielleicht hilft dir auch das. Da ging es um etwas ähnliches, du kannst ja mal schauen, ob du davon etwas verwenden oder lernen kannst.

      Sebastian
      Ich arbeite beim Linux-Systemhaus ETES in Stuttgart

      Kommentar

      • m.orange
        Contao-Nutzer
        • 16.09.2009
        • 12

        #4
        Hallo MacKP & Sebastian,

        besten Dank erst einmal für eure Tipps. Dein Tutorial hab ich mir eigentlich soweit schon durchgearbeitet, aber vielleicht habe ich da ja was übersehen. Jedenfalls konnte ich nichts finden, was den Teil betrifft.

        Das was "BEEware" dort in seinem Thread versucht, scheint bei mir so nicht zu funzen, habs erstmal nur über Firebug kurz getestet. Wofür soll eigentlich die .trail class Verwendung finden?


        Anbei mal den aktuellen HTML Code…
        HTML-Code:
        <div class="mod_navigation block" id="menu1">
        
        <a href="index.php/was-wir-machen.html#skipNavigation10" class="invisible">Navigation überspringen</a>
          <ul class="level_1">
            <li class="first"><a href="index.php/punkt1.html" title="wer wir sind" class="first" onclick="this.blur();">punkt1</a></li>
           <li class="active submenu"><span class="active submenu">punkt2</span>
        
            <ul class="level_2">
              <li class="nav2 first"><a href="punkt2 # punkt1.html" title="punkt2 # punkt1" class="nav2 first" onclick="this.blur();">punkt2 # punkt1</a></li>
              <li><a href="index.php/punkt2 # punkt2.html" title="punkt2 # punkt2" onclick="this.blur();">punkt2 # punkt2</a></li>
              <li><a href="index.php/punkt2 # punkt3.html" title="punkt2 # punkt3" onclick="this.blur();">punkt2 # punkt3</a></li>
              <li><a href="index.php/punkt2 # punkt4.html" title="punkt2 # punkt4" onclick="this.blur();">punkt2 # punkt4</a></li>
              <li><a href="index.php/punkt2 # punkt5.html" title="punkt2 # punkt5" onclick="this.blur();">punkt2 # punkt5</a></li>
              <li class="last"><a href="index.php/punkt2 # punkt6.html" title="punkt2 # punkt6" class="last" onclick="this.blur();">punkt2 # punkt6</a></li>
           </ul>
        
          </li>
          <li class="last"><a href="index.php/punkt3.html" title="punkt3" class="last" onclick="this.blur();">punkt3</a></li>
          </ul>
         
          <a name="skipNavigation10" id="skipNavigation10" class="invisible">&nbsp;</a>
        </div>

        Beste Grüße und vielen Dank,
        m.orange

        Kommentar

        • MacKP
          Contao-Yoda
          • 15.06.2009
          • 13315

          #5
          Hallo m.orange,
          die Klasse trail wird vergeben wenn ein Unterpunkt von diesem Punkt aktiv ist.
          Damit kann man Elternpunkte immer noch anders darstellen als andere Navipunkte.

          Viele Grüße
          Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
          [Arbeitet bei -> Paus Design & Medien]
          "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

          Kommentar

          • m.orange
            Contao-Nutzer
            • 16.09.2009
            • 12

            #6
            Hallo MacKP,

            hmm okay, da muss ich wohl noch etwas rumprobieren.


            Vielen Dank erstmal

            Kommentar

            • corticelli
              Contao-Nutzer
              • 20.06.2009
              • 230

              #7
              Ich bin nicht ganz sicher, ob ich falsch verstehe, aber das Problem scheint nich wirklich groß zu sein:

              für das Menü erster Ebene legst Du ein Modul mit Modultyp Navigation an und folgender Konfiguration:
              • Startlevel 0
              • Stopplevel 1
              • Hardllimit: aktiviert

              Dieses Modul packst Du in das Seitenlayout und formatierst es per CSS wie du es haben willst.

              dann legst Du für die Unternavigation ein weiteres Modul mit Modultyp Navigation an und folgender Konfiguration:
              • Startlevel 1
              • Stopplevel 1
              • Hardllimit: aktiviert

              Auch dieses Modul packst Du in das Seitenlayout und formatierst es per CSS wie du es haben willst.

              Damit sind Hauptmenü und Sekundärnavigation nicht ineinander verschachtelt und können völlig unabhängig voneinander platziert und gestaltet werden - und das ist es, was Du wolltest, oder?
              Weil ich halt ein Schelm bin.

              Kommentar

              • m.orange
                Contao-Nutzer
                • 16.09.2009
                • 12

                #8
                Hallo,

                vielen Dank für eure Tipps, habs jetzt soweit formatiert, dass es gut aussieht.
                Jetzt noch eine Kleinigkeit beim Untermenü – ich möchte das hinter jedem dieser Untermenüpunkte noch ein Pfeil gelistet wird. Dafür muss ich ja dann doch das Template editieren. Wo finde ich dieses denn oder welche Variable ist das?


                Besten Gruß und vielen Dank,
                m.orange

                Kommentar

                • MacKP
                  Contao-Yoda
                  • 15.06.2009
                  • 13315

                  #9
                  Hallo m.orange,
                  dafür brauchst du das Template nicht editieren.
                  Du musst das nur über CSS machen mit background -> http://www.css4you.de/background.html

                  Viele Grüße
                  Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
                  [Arbeitet bei -> Paus Design & Medien]
                  "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

                  Kommentar

                  • Sebastian
                    Contao-Urgestein
                    • 19.06.2009
                    • 3361

                    #10
                    HI

                    @corticelli: Ich würde ein Modul nehmen. Denn so ist HTML-seitig absolut kein hierarchischer Zusammenhang zwischen den Ebenen gegeben. Und per CSS kann man alles zurechtbiegen.

                    Sebastian
                    Ich arbeite beim Linux-Systemhaus ETES in Stuttgart

                    Kommentar

                    • corticelli
                      Contao-Nutzer
                      • 20.06.2009
                      • 230

                      #11
                      Verstehe ich nicht ganz: wozu benötigt die zweite Ebene semantische Information über die erste oder umgekehrt? Das wäre sicherlich nötig bei einem Baum, aus meiner Sicht jedoch unnötig bei zwei Ebenen ... vielleicht ist es auch eine Abwägungssache: denn das hier erstrebte Ziel mit ineinander verschachtelten UL und CSS zu erreichen, ist vielleicht mit viel Aufwand möglich und erzeugt semantisch korrektes HTML, jedoch dürfte Lösung mit "unabhängigen" ULs deutlich einfacher reaisierbar, wartbarer und damit preiswerter sein. Ich bin jetzt kein absoluter Experte für Barrierefreiheit, gehe jedoch davon aus, dass auch Screenreader mit getrennten URLs kein Problem haben sollten, so dass die Nachteile vermutlich eher akademischer Natur sein dürften. Oder habe ich etwas übersehen?
                      Weil ich halt ein Schelm bin.

                      Kommentar

                      • m.orange
                        Contao-Nutzer
                        • 16.09.2009
                        • 12

                        #12
                        Hallo zusammen,

                        ich hab das Menü mit dem Untermenü jetzt so umgesetzt:
                        HTML-Code:
                        <!-- 1. ebene -->
                        <ul class="nav1">
                          <il><a href="#">punkt 1</a></li>
                          <il><a  href="#">punkt 2</a></li>
                          <il><a  href="#">punkt 3</a></li>
                        </ul>
                        
                        <!-- 2.ebene -->
                        <ul class="nav2">
                          <il class="nav2"><a  class="nav2" href="#">punkt 2 # punkt 1</a></li>
                          <il class="nav2"><a  class="nav2" href="#">punkt 2 # punkt 2</a></li>
                          <il class="nav2"><a  class="nav2" href="#">punkt 2 # punkt 3</a></li>
                          <il class="nav2"><a  class="nav2" href="#">punkt 2 # punkt 4</a></li>
                          <il class="nav2"><a  class="nav2" href="#">punkt 2 # punkt 5</a></li>
                        </ul>
                        soweit sieht das alles ganz gut aus. jetzt möchte ich aber gern, das hinter jedem listenpunkt noch ein pfeil mit im link sitzt.

                        HTML-Code:
                        <!-- 2.ebene -->
                        <ul class="nav2">
                          <il class="nav2">
                            <a class="nav2" href="#">
                              <div class="link" punkt 2 # punkt 1</div>
                              <div class="pfeil">[COLOR="Red"]→[/COLOR]</div>
                            </a>
                          </li>
                        
                         <il class="nav2">
                            <a class="nav2" href="#">
                              <div class="link" punkt 2 # punkt 2</div>
                              <div class="pfeil">[COLOR="Red"]→[/COLOR]</div>
                            </a>
                          </li>
                        
                         <il class="nav2">
                            <a class="nav2" href="#">
                              <div class="link" punkt 2 # punkt 3</div>
                              <div class="pfeil">[COLOR="Red"]→[/COLOR]</div>
                            </a>
                          </li>
                        
                         <il class="nav2">
                            <a class="nav2" href="#">
                              <div class="link" punkt 2 # punkt 4</div>
                              <div class="pfeil">[COLOR="Red"]→[/COLOR]</div>
                            </a>
                          </li>
                        
                         <il class="nav2">
                            <a class="nav2" href="#">
                              <div class="link" punkt 2 # punkt 5</div>
                              <div class="pfeil">[COLOR="Red"]→[/COLOR]</div>
                            </a>
                          </li>
                        
                        </ul>
                        Bisher habe ich sowas direkt immer im Code gemacht, aber TL arbeitet da ja doch etwas anders und über ein Bild im den Pfeil darzustellen würde ich ungern, da der Pfeil ja zur UTF8 Codierung gehört.

                        Hat jemand dazu vielleicht ne Idee, wie ich dies per Code umsetzen kann in TL?


                        Besten Dank für eure Hilfe,
                        m.orange

                        Kommentar

                        • MacKP
                          Contao-Yoda
                          • 15.06.2009
                          • 13315

                          #13
                          Zitat von MacKP Beitrag anzeigen
                          Hallo m.orange,
                          dafür brauchst du das Template nicht editieren.
                          Du musst das nur über CSS machen mit background -> http://www.css4you.de/background.html

                          Viele Grüße
                          Ich kann es dir auch noch mal schreiben....

                          Edit:
                          Sorry, du willst echt unbedingt den Pfeil so haben?
                          Nuja, das ist jetzt für Screenreader natürlich absolut ungünstig, da einem dann immer der Pfeil vorgelesen wird....

                          Wenn du das wirklich unbedingt so haben willst, dann kannst du das Template nav_default.tpl einfach abändern.... und einfach den Pfeil dann da rein machen.
                          Wie sieht dein Template denn inzwischen aus? Oder hattest du das doch nicht umgestellt?
                          Zuletzt geändert von MacKP; 26.01.2010, 13:33.
                          Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
                          [Arbeitet bei -> Paus Design & Medien]
                          "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

                          Kommentar

                          • m.orange
                            Contao-Nutzer
                            • 16.09.2009
                            • 12

                            #14
                            Hallo MacKP,

                            jepp das wäre mir sehr lieb, mit Bildern find ich nicht so toll.

                            So siehts inzwischen aus:
                            HTML-Code:
                            <ul class="<?php echo $this->level; ?>">
                            <?php foreach ($this->items as $item): ?>
                            <?php 
                            
                            $navigation = substr($item['class'], 0, 4);
                            if ($navigation == "nav2") $pfeil = "→";
                            
                            if ($item['isActive']): ?>
                            <li class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><span class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><?php echo $item['link']; ?></span>
                            <span class="<?php if ($pfeil): ?>pfeil<?php endif; echo $pfeil; ?>"> </span>
                            <?php echo $item['subitems']; ?></li>
                            <?php else: ?>
                            <li<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?>>
                            	<a href="<?php echo $item['href']; ?>" 
                            		title="<?php echo $item['pageTitle'] ? $item['pageTitle'] : $item['title']; ?>"<?php if ($item['class']): ?> 
                            		class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; ?><?php if ($item['tabindex']): ?> 
                            		tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?><?php if ($item['nofollow']): ?> 
                            		rel="nofollow"<?php endif; ?> 
                            		onClick="this.blur();<?php echo $item['target']; ?>"><?php echo $item['link']; ?>
                            		<?php if ($pfeil): echo "<span class='pfeil'>".$pfeil."</span>"; endif; ?>
                            	</a>
                            <?php echo $item['subitems']; ?></li>
                            <?php endif; ?>
                            <?php endforeach; ?>
                            </ul>
                            Sieht jetzt eigentlich alles so aus, wie gewollt. Hast du noch Optimierungsvorschläge?


                            Viele Grüße und danke für deine Hilfe,
                            m.orange

                            Kommentar

                            • MacKP
                              Contao-Yoda
                              • 15.06.2009
                              • 13315

                              #15
                              Hallo m.orange,
                              na wenns funktioniert dann ist ja gut ;-)

                              Viele Grüße
                              Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
                              [Arbeitet bei -> Paus Design & Medien]
                              "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

                              Kommentar

                              Lädt...