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...
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 ?
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...
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 ?
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 ? 🙂
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 ??
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
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*
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.
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
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...🙁 )
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.
Danke für die Ausführung. Problem also gelöst? Dann wird's mal als gelöst markiert.
Ausserdem:
fragile74 schriebHat also nix mit CSS zu tun, sondern mit der DHTML-Technik.
Um Verwirrung vorzubeugen: CSS ist Bestandteil von dHTML.
grüsse