Zum Inhalt springen

Horizontales Submenü bei GMENU/TMENU_LAYERS

Erstellt am 24. Juli 2006 · 13 Antworten · letzte Antwort am 6. September 2006

Tags: Frage

fragile74 ·

Hi,

ich möchte auch die Subebenen bei xMENU_LAYERS nicht vertikal sondern horizontal darunter ausgeben - wie erreiche ich das am besten ? Der Code für ein Horizontales Menü mit vertikaler Subebene existiert schon. Versuche mit entspr. GMENU und allWrap in der 2. ebene schlugen leider fehl...

fragile74 ·

hat denn keiner je so ein Menü realisiert ? trifft man doch zuhauf im Internet und mit Flash etc. ists in 10 min programmiert - sollte da etwa Typo3 versagen ?

fragile74 ·

Damit ihr euch mal ein besseres Bild von dem ganzen Problem machen könnte, hier mal mein bisher noch auf Frames basierender TS-Text, das Problem ist die menu.10.2 - Sektion, die soll naemlich die Menüpunkte der 1. Subebene horizontal ausgeben...

zu sehen ist die Seite derzeit unter http://www.calophainsloft.de/web/index.php?id=7

myframeset = PAGE
header = PAGE
menu = PAGE
kontent = PAGE

myframeset.typeNum = 0
header.typeNum = 1
menu.typeNum = 2
kontent.typeNum = 3

header.10 = TEXT
header.10.value = Kopf
header.bodyTag = <body bgcolor="#AA00EE">


menu.bodyTag = <body bgcolor="#FFAB0E">
menu.includeLibs.gmenu_layers = media/scripts/gmenu_layers.php
menu.10 = HMENU
menu.10.1.target=kontent
menu.10.1 = GMENU_LAYERS
menu.10.1 {
  dontHideOnMouseUp = true
  layerStyle = position:absolute;left:20px;top:35px;width:30px;VISIBILITY:hidden; 
  xPosOffset = -20
  lockPosition = x
  expAll = 1
  NO {
    backColor = #FFAB0E
    XY = [10.w]+80, 30
    10 = TEXT
    allWrap =  |
    10.text.field = title
    10.offset = 5,17
    10.fontColor = #FFFFFF
    10.fontFile = fileadmin/verdana.ttf
    10.fontSize = 13
    }
         }
menu.10.2 = GMENU
menu.10.2.target=kontent
menu.10.2  {
    expAll = 1
    NO {
    allWrap = |*|
    backColor = #FFEEEE
    XY=100,18
    10 = TEXT
    10 {
      text.field = title
      offset = 5,12
      fontColor = #FFAB0E
      fontFile = fileadmin/fonts/verdana.ttf
      fontSize = 11
      niceText = 1
    }
  }

    }

kontent.10 < styles.content.get

myframeset.frameSet.rows = 150,80,*
myframeset.frameSet.params = frameborder="no" border="0" framespacing="0"
myframeset.frameSet  {
     10 = FRAME
     10.obj = header
     10.params = scrolling="NO" noresize frameborder="NO"
     20 = FRAME
     20.obj = menu
     20.params = scrolling="NO" noresize frameborder="NO" marginwidth= 15 marginheight=10
     30 = FRAME
     30.obj = kontent
     30.params = scrolling="AUTO" noresize frameborder="NO"

}

Wäre sehr dankbar, wenn mir jemand weiterhelfen könnte...
fragile74 ·

Ich hab jetzt den Tipp bekommen, das einfach mit 2 TMENU-Ebenen und CSS zu machen. Wenn ich die Ebene 1 in die Ebene 2 referenziere, wird diese einfach rechts neben dme jeweiligen Hauptmenüpunkt angezeigt, sie soll aber horizontal darunter angezeigt werden. Kennt TMENU sowas wie einen Offset oder muss ich das ganze über CSS machen ?

just2b ·
fragile74 schrieb

Ich hab jetzt den Tipp bekommen, das einfach mit 2 TMENU-Ebenen und CSS zu machen. Wenn ich die Ebene 1 in die Ebene 2 referenziere, wird diese einfach rechts neben dme jeweiligen Hauptmenüpunkt angezeigt, sie soll aber horizontal darunter angezeigt werden. Kennt TMENU sowas wie einen Offset oder muss ich das ganze über CSS machen ?

über css

fragile74 ·

ok,

also meine gedankliche Vorgehensweise wäre :
- TYPO3 TMENU mit ul/li - wrapping für die entsprechenden Ebenen anlegen
- CSS IDs/Klassen den einzelnen Ebenen und Zuständen zuweisen
- CSS - Formatierungen erstellen (hab grad gemerkt, daß man ul/li Elemente durch "display:inline" im CSS-Stylesheet ohne Zeilenumbruch hintereinander anordnen kann, das wäre die Lösung für mein Problem)
- CSS-Datei z.b. als Ressource ans TYPO3 - Template hängen

-> fertig ...

right ? 🙂

fragile74 ·

update :ich bekomms auch mit CSS nicht hin,daß die 2. Ebene die Menüpunkte horizontal darstellt ... brauche ich dafür vielleicht eine eigene Klasse, d.h. ich arbeite für beide ebenen mit der "Spaltenbreite" der Menüpunkte der Hauptebene udn deshalb bricht der Browser das automatisch um ??

Unbekannter Benutzer ·

Also ich habe sowas noch nicht probiert und glaube auch, dass das schwierig wird. Ich denke hier sind floats deine Freunde. Such mal nach CSS float

Christian

fragile74 ·

Sorry - aber wenn ein so umfangreiches System wie TYPO3 bei einer so einfachen Designanforderung scheitert bzw. Umwege über spezielle und cross-browser-fragwürdige CSS-Techniken nehmen muss ... *kopfschüttel* ... ich hab das in Flash in 10 Min gemacht *immernochwundeR*

Unbekannter Benutzer ·

Ja nun, mit Flash kann man viel machen was in HTML/CSS nicht geht. Aber das liegt doch nicht an TYPO3 sondern einfach daran, das HTML/CSS nicht alles kann und cross-browser ist Flash ja auch nicht unbedingt. Wenn man sowas will muss man sich halt mit CSS beschäftigen und versuchen so eine Lösung erstmal mit HTML zu bauen. Wenn man dann einen funktionierenden Code hat, ist der ja einfach in TYPO umgesetzt. Theoretisch könnte man auch mal eine Bibliothek mit TS-Codes für verschiedene Menüs anlegen. Vielleicht starte ich mal so ein Projekt.

toyde ·

Wie man Flash mit TYPO3 technisch vergleichen kann ist mir ein kleines Rätsel. Ausserdem scheints grundlegend an HTML/CSS zu scheitern, warum ich das Kopfschütteln nicht ganz nachvollziehen kann. Genereller Tipp: komplexere Konstrukte in HTML/CSS einfach mal lokal durchdenken/aufbauen, etc.. Der Umbau in TypoScript fällt dann evtl. leichter.

grüsse

fragile74 ·

Ja stimmt schon, ich bin nur gerade etwas frustriert, weil genau mein Fall zweier horizontaler Ebenen nicht einfach in Typoscript gelöst werden kann. Ich komme aus der Flash-Welt (mit HTML und PHP im Rücken) und hab bisher CSS gemieden, da mir das noch viel zu uneinheitlich (siehe Quirks-Mode-Hacks blabla) implementiert ist. Ich vergleiche auch nicht Typo3 komplett mit Flash sondern die Möglichkeiten, die mir Typoscript nativ zur Navigationserstellung bietet und da muss ich "designtechnisch" gerade in diesem einen speziellen Konstruktfall einen riesen Zirkus veranstalten - daher der Frust (wohl auch, weil der Chef auf 2 horizontalen Ebenen besteht...🙁 )

fragile74 ·

Hi,

ich hab das ganze mal liegen gelassen und bin heute vormittag nochmal dran. Die Sache ist sehr einfach :

TYPO3 bzw. DHTML bricht die Menüüunkte im Layer an dessen rechter Kante um. Folglich stehen die Menüpunkte in den Beispielen untereinander, weil der DHTML-Layer nur etwa 100 Pixel breit ist. Will ich die Subebene 1 HORIZONTAL unter den Hauptmenüpunkten stehen haben, lege ich die Prop "layerStyle" so an :

"layerStyle = position:absolute;left:20px;top:35px;width:300px;VISIBILITY:hidden; "

Ich ich mache den Layer also nicht 100 oder nur 30 px breit, sondern 300. Damit haben die Menüpunkte Platz und stehen im per Typoscript gewählten Abstand nebeneinander. Hat also nix mit CSS zu tun, sondern mit der DHTML-Technik.

Hoffe etwaigen Horizontal-Layoutern geholfen zu haben.

toyde ·

Danke für die Ausführung. Problem also gelöst? Dann wird's mal als gelöst markiert.

Ausserdem:

fragile74 schrieb

Hat also nix mit CSS zu tun, sondern mit der DHTML-Technik.

Um Verwirrung vorzubeugen: CSS ist Bestandteil von dHTML.

grüsse