Zum Inhalt springen

TMENU_LAYERS: Fixieren und variable Breite

Erstellt am 3. Juni 2009 · 2 Antworten · letzte Antwort am 16. Juni 2009

Tags: Frage

almi13 ·

Hallo zusammen,

mein Menü könnt Ihr unter http://mitsch.dyndns.org:1111 anschauen, dazu habe ich 2 Fragen, auf die ich in keinem Forum bzw. Anleitung eine Antwort finde. Zur Erleuterung: Es geht um das horizontale Menü in der Mitte. Dies habe ich zunächst mit 2 Markern realisiert, damit die zweite Ebene (grau auf beige) fix und unabhängig von der ersten (gelb auf blau) ist. Das funktioniert auch. Es geht nun um die dritte Hierarchie-Ebene, das Layer, das quasi die zweite Ebene des beigen Menüs darstellt. Diese dritte erscheint im Moment relativ zum auslösenden Element, also dem Mauszeiger und je nachdem wo ich das Elternelement überfahre etwas mehr rechts oder links. Es soll sich schon am Elternelment orientieren, aber immer fix, also bündig zu diesem.

Weiterhin hätte ich die Breite des Layers gerne variabel, z.Zt. ist sie fix (170 px, Zeile 23 im TS Code). Sie soll nur die max. nötige Breite haben, damit es zu keinem Umbruch kommt. Habe schon die Breite in Zeile 23 rausgenommen und useLargestItemX versucht, aber da wird der Layer 100% breit.

Der Code:

	<tr>
		<td colspan="3" valign="top" class="menuMitte1">###MENU_MITTE_1###</td>
	</tr>
	<tr>
		<td colspan="3" class="menuMitte2">###MENU_MITTE_2###</td>
	</tr>
    MENU_MITTE_1 = HMENU
    MENU_MITTE_1.special = directory 
    MENU_MITTE_1.special.value = 3
    MENU_MITTE_1.1 = TMENU
    MENU_MITTE_1.1.NO = 1
    MENU_MITTE_1.1.NO {
      linkWrap = <img src="fileadmin/images/menu_oben_pfeil_rechts.gif" height="15" width="43" border="0" align="top" alt="" />|
      ATagParams = class="linkMenuMitte1"
    }
    
    MENU_MITTE_1.1.CUR < .MENU_MITTE_1.1.NO
    MENU_MITTE_1.1.CUR {
      linkWrap = <img src="fileadmin/images/menu_oben_pfeil_unten.gif" height="15" width="43" border="0" align="top" alt="" />|
    }

    MENU_MITTE_2 = HMENU
    MENU_MITTE_2.entryLevel = 2
    MENU_MITTE_2.1 = TMENU_LAYERS
    MENU_MITTE_2.1.expAll = 1

    MENU_MITTE_2.1 {
      NO = 1
      layerStyle = position: absolute; width:170px; background-color:#f4eddb; visibility: hidden
      xPosOffset = 50
      yPosOffset = -171
      lockPosition = y
      dontFollowMouse = 1

      NO {
        ATagParams = class="linkMenuMitte2"
        linkWrap =    |   
      }
    }
    
    MENU_MITTE_2.2 = TMENU_LAYERS
    MENU_MITTE_2.2 {
      layerStyle = position: absolute; visibility: visble
      relativeToTriggerItem = 1
      relativeToParentLayer = 1
      relativeToTriggerItem.addWidth = 1
 
      NO {
        ATagParams = class="linkMenuMitte2"
        linkWrap =    |   
      }
    }

Vielen Dank und Gruß, Alex

almi13 ·

Also das kleinere Problem hab ich gelöst. Wenn ich für den layer keine breite angebe und eine table drum wrappe und diese mit Hintergrundfarbe versehe, dann ist das Menü immer so breit wie es sein soll. Statt table einen div oder span geht nicht, die werden dann immer 100% breit. D.h. unten in zeile 41:
wrap = <table style=...><tr><td>|</td></tr></table>

So, nun aber nochmal zum größeren Problem, hat denn niemand einen kurzen Denkanstoß? Gehen muss es doch, siehe http://www.online-software-ag.de/

Gruß, Alex

edv-cm ·

Hi,

das ist was für CSS-Menues. Sowas kannst du einfach via CSS und UL-LI Listen lösen. Die Einbindung in TS ist dann auch einfacher. Such mal unter CSS Drop-Down Menues.

Greetings
EDV

EDIT:
hier noch mein TS Beispiel (wegen IE-Weiche das hat mich schon viel Zeit gekostet)

# Hauptmenue
  1 = TMENU
  1{
    wrap = <ul id="nav"> | </ul>
    expAll = 1
    NO.ATagTitle.field = subtitle//title
    NO.wrapItemAndSub = <li> | </li>
    NO.stdWrap.prepend = COA
    NO.stdWrap.prepend.10.wrap = ~&nbsp; |
    IFSUB = 1
    IFSUB {
      wrapItemAndSub = <li> | </li>
      allWrap = | <!--<![endif]-->
      linkWrap = |<!--[if gte IE 7]><!-->
      ATagBeforeWrap = 1
    }
    ACT < .NO
    ACT = 1
    ACT.ATagParams = class=dropact
    ACTIFSUB < .IFSUB
    ACTIFSUB.ATagParams = class=dropact
  }
  2 = TMENU
  2{
    wrap = <!--[if lte IE 6]><table><tr><td><![endif]--><ul> | </ul><!--[if lte IE 6]></td></tr></table></a><![endif]-->
    expAll = 1
    NO.ATagTitle.field = subtitle//title
    NO.wrapItemAndSub = <li> | </li>
    IFSUB = 1
    IFSUB {
      wrapItemAndSub = <li> | </li>
      ATagBeforeWrap = 1
      ATagParams = class=drop
    }
  }
 
  3 < .2
}