Relative Layerpositionierung in NN
Stephan Huber
Hi,
ich versuche ein Dropdownmenue zu schreiben,
dass mit IE & NS4 funktioniert. Das Problem ist, daß ich aufgrund der Gestaltung der Seiten keine absolute Positionierung benutzen kann, sondern die Position des Menues muss sich auf ein HTML-Element in der Seite beziehen. Ich habe das durch verschachtelte layers (<div>) geloest, so dass ein absolut positionierter Layer an der entsprechenden Stelle in der Seite eingefuegt ist, dem ein relativ positionierter folgt. Das Ganze funktioniert im IE sehr gut, nur NN macht Probleme - die Menues werden zwar dargestellt, aber Text in den Menues nicht, und anscheinend ist dass ein Bug in NN - denn wenn ich das Browserfenster 'resize', dann wird der Layer mit Text dargestellt, aber an der falschen Stelle, und NN stuerzt manchmal ab, wie ich gerade feststellen musste :-(. Ich kann auch nicht eine zweite Version mit NN's <layer>-tag schreiben, weil mit dem anscheinend die relative Positionierung in Relation zu einem HTML-Element nicht so funktioniert, wie ich es braeuchte. Weiss irgendwer, wie ich dieses Problem umgehen kann?
(Code fuer die Layers unten)
Danke,
Stephan
die Layers:
<DIV ID="button1" class="normal">
<DIV ID="menu1" class="menu">
<A href="start.html">Deutsch</A><BR>
<A href="../engl/start.html">Englisch</A>
</DIV>
</DIV>
die dazugehoerigen Stylesheets:
.menu {position:absolute;
visibility:hidden;
background-color: #6699CC;
layer-background-color: #6699CC;
top:-5;
width:230;
color: white;
border-style: solid;
border-color: white;
border-width: 2px;
border-top-width: 0px;
padding: 2px;
font-size : 11px;
font-family: arial,helvetica;
font-weight: bold;}
.menu A {color: white;text-decoration:none;}
.normal {position:relative;
visibility:visible;
vertical-align:top;
margin:0;
Hallo Stephan,
Das Ganze funktioniert im IE sehr gut, nur NN macht Probleme - die Menues werden zwar dargestellt, aber Text in den Menues nicht, und anscheinend ist dass ein Bug in NN - denn wenn ich das Browserfenster 'resize', dann wird der Layer mit Text dargestellt, aber an der falschen Stelle, und NN stuerzt manchmal ab, wie ich gerade feststellen musste :-(.
Da kannst Du sonst programmieren so viel Du willst - das Problem mit Netscape, Layern und dem Verhalten des Browsers, wenn man die Fenstergroesse veraendert, ist nicht neu. So weit mir bekannt ist da auch nix zu machen - ausser, man steckt das ganze in ein in der Groesse nicht veraenderbares Zweitfenster oder Framefenster.
viele Gruesse
Stefan Muenz
Hallo Stefan,
danke für die Antwort, aber das mit dem Resize wäre nicht so schlimm, denn es gibt anscheinend eine Möglichkeit, das Problem mit einem Javascript zu umgehen (gibts bei Netscape Developer).
Warum ich das resize erwähnt habe, ist, daß nach dem resize der Text im Layer dargestellt
wird, und vorher nicht...
Vielleicht probierr ich es mal mit Bildern im Layer für Netscape...
Viele Grüße
Stephan Huber
Hallo,
danke für die Antwort, aber das mit dem Resize wäre nicht so schlimm, denn es gibt anscheinend eine Möglichkeit, das Problem mit einem Javascript zu umgehen
Ja, das ist machbar, nicht wirklich problematisch.
Warum ich das resize erwähnt habe, ist, daß nach dem resize der Text im Layer dargestellt
wird, und vorher nicht...
Kann man das irgendwo mal angucken?
Ich kann mr sowas immer so schwer vorstellen <g>
Christine
Hi Christine,
mmh, ich habe zwei Testversionen hochgeladen, aber ein kurzes Proviso:
Viele Gruesse
Stephan
P.S. meine NNVersion: 4.05d
Hallo,
- !! ich habe das Problem "gelöst", deshalb zwei Versionen:
http://analogon.com/nanotec/de/start.html
http://analogon.com/nanotec/dropdowntest/start.html
Und die Lösung: ich habe einige Angaben im Stylesheet für den inneren Layer
gelöscht, die eigentlich mit der Textanzeige nichts zu tun haben sollten (Border, usw.),
und seitdem funktioniert es. (es kann auch nicht direkt an diesen Stylesheet-Angaben gelegen
haben, wegen der Anzeige des Textes nach einem Resize im zweiten Beispiel)
Doch, ich glaube trotzdem, dass die Border-Angabe verantwortlich ist.
Irgendwann habe ich auch mal damit gekaempft. Man vergisst am Ende nur die Einzelheiten, was womit ging oder nicht ging bei so fuerchterlichen unlogischen Rumprobierereien.
Resize ueberstehen bei mir (Win95) weder Navi4.04 noch 4.07, quittieren beide hartnaeckig mit Absturz, allerdings nur in der Version, die die Menues nicht richtig zeigt.
Dass das Resize-Verhalten, ob nun meins oder Deins, anders ist als das beim Laden, kann damit zusammenhaengen, dass Du die Teile per document.write() generierst, der Code wird bei Resize wohl nicht nochmal abgearbeitet, also nur neu positioniert, vermute ich.
BTW: Warum eigentlich document.write()? Ich habe keinen Grund dafuer erkannt.
Was uebersehen?
Ich vermeide sowas nach Moeglichkeit. Navis sind mir zu empfindlich, wenn bei dabei CSS im Spiel sind.
Christine
P.S. meine NNVersion: 4.05d