Hallo,
ich hab irgendwie ein Problem mit der Positionierung bei einem tmenu_layer. Meine Seite ist in einem DIV gewrapped, das mit position: absolute im Browser zentriert wird.
div#overall-container {
position: absolute;
width: 974px;
left: 50%;
margin-left: -487px;
font-family: Arial, sans-serif;
}
Das muss so sein, weil in dem Container wieder Elemente mit position: absolute positioniert werden müssen.
TYPO3 setzt aber die Layers außerhalb dieses Containers direkt nach dem bodytag, womit sich position: absolute auf den Browser und nicht den Container bezieht. Mein Menü:
navigation.nav-home-center = HMENU
navigation.nav-home-center {
1 = TMENU_LAYERS
1 {
wrap = <div id="nav-center-wrapleft"></div><div class="nav-home-lvl1-seperator"></div>|<div id="nav-center-wrapright"></div>
layerStyle = position:absolute;VISIBILITY:hidden;
lockPosition = y
relativeToTriggerItem = 1
hideMenuWhenNotOver = 80
hideMenuTimer = 1000
expAll = 1
leftOffset = 330
topOffset = 40
NO.allWrap = <div class="nav-home-lvl1">|</div><div class="nav-home-lvl1-seperator"></div>
NO.ATagBeforeWrap = 1
NO.linkWrap = <span>|</span>
NO.stdWrap.htmlSpecialChars = 0
}
2 = TMENU
2 {
wrap = |
NO.allWrap = <div class="nav-home-lvl2">|</div>
NO.ATagBeforeWrap = 1
NO.linkWrap = <span>|</span>
NO.stdWrap.htmlSpecialChars = 0
}
}
Das hat zur Folge, dass natürlich bei unterschiedlicher Bildschirmauflösung bzw. Browserfenstergröße das Untermenü horizontal immer an einer anderen Stelle erscheint.
Kann mir da jemand auf die Sprünge helfen?
LG
Semmel
MohnSemmel schrieb... das mit position: absolute im Browser zentriert wird.
Eine schlechte Lösung – Teile der Seite werden unerreichbar bei einem schmalen Viewport. Besser Du nimmst Margin (auto) dafür.
MohnSemmel schriebDas muss so sein, weil in dem Container wieder Elemente mit position: absolute positioniert werden müssen.
Das ist so nicht ganz richtig. Auch „position: relative“ etabliert ein „Containing Block“.
MohnSemmel schrieb
TYPO3 setzt aber die Layers außerhalb dieses Containers direkt nach dem bodytag ...
Vielleicht hilft Dir das hier:
http://www.typo3forum.net/forum/typo3-4-x-fragen-probleme/19973-layer-menue-x-ten.html
Hallo Emil,
vielen Dank für die schnelle Antwort, hat so geklappt mit
page.bodyTagCObject = HTML
page.bodyTagCObject.value = <body onload="T3_onloadWrapper();"><div id="main-container">
Zu "position: absolute" gebe ich dir "absolute" 😉 recht, ich mache normalerweise immer margin auto. ABER: Wenn ich Elemente mit Hilfe von z-index überlappend positionieren muss geht das imho nur mit "position: absolute". Und damit sich eben das positionierte Element im Container auch am Container ausrichtet, und nicht am Browser, muss das Elternelement auch "position: absolute" sein!
LG
Semmel
MohnSemmel schriebvielen Dank für die schnelle Antwort, hat so geklappt ...
Bitte, gerne.
Aber nochmal:
MohnSemmel schriebWenn ich Elemente mit Hilfe von z-index überlappend positionieren muss geht das imho nur mit "position: absolute". Und damit sich eben das positionierte Element im Container auch am Container ausrichtet, und nicht am Browser, muss das Elternelement auch "position: absolute" sein!
Da liegst Du bei allen Punkten falsch. 😉
Dein Layout ist ziemlich breit. Ein zentrieren mit Hilfe von „position: absolute;“ ist so das Schlimmste, was Du Dir antun kannst. Vor Allem dann, wenn Deine Navi links im Layout stehen sollte.