JavaScript/DHTML Menu
Philipp Hasenfratz
- javascript
Halihallo Forumer
In JavaScript höre ich mal lieber auf eure Erfahrungsberichte und Wissen. Deshalb würde
ich mir gerne eure Ideen zu folgendem anhören:
Ich muss ein javascript Menü für eine Sitenavigation realisieren, welches in ein
bestehendes Design eingefügt werden soll. Das Menü soll über einen onMouseover eines
Links geöffnet werden können und überdeckt den untenliegenden Content. Bei onMouseout
soll das Menü wieder geschlossen werden. Eine weitere Gliederung (Untermenüs) der
Inhalte der Menükarte ist optional. Das Menü sollte auf allen gängigen (graphischen)
Browsern funktionieren (auch der 4-er Netscape; IE4-6, Opera, Mozilla, NS4-7).
Mich interessiert primär die Umsetzungstechniken: Wie kann ich die Menüs (relativ zum
öffnenden Link) ausrichten (es darf kein Platz für Menüs "vordefiniert" werden, da
dieser von normalem Inhalt benutzt wird und durch öffnen eines Menüs überdeckt werden
soll)? - Welche "Parent-Elemente" benutze ich als Container (div, span, td's, layer)?
Kennt jemand einfache "Beispiele" (überschaubare, sodass ich mich nicht durch tausende
von A4 Seiten Code durchwälzen muss; soviel Zeit möchte ich für dieses Problem nicht
investieren).
Mich würden auch einige Stichwörter für die Suche interessieren, wo dieses Problem u. U.
schon behandelt wurde; ich hatte leider keinen Erfolg (anscheinend verwende ich die
falschen Keywords...).
Viele Grüsse
Philipp
Guck doch mal im SelfHTML 8.0
Da hat jemand schon eins gemacht. unter DHTML Beispiele oder so
Halihallo "sag i net"
Guck doch mal im SelfHTML 8.0
Da hat jemand schon eins gemacht. unter DHTML Beispiele oder so
Meinst du dieses hier? - http://selfhtml.teamone.de/dhtml/beispiele/navigation.htm
Gut ist es ja, jedoch beantwortet mir dieses nicht die Frage, wie ich die Elemente
(div's) _relativ zum Link_ positioniere.
oder http://aktuell.de.selfhtml.org/artikel/index.htm ? - Dort hab ich zwar auch
eines gefunden, aber das positioniert ebenfalls nicht...
Viele Grüsse
Philipp
Hallo,
meinst Du vielleicht sowas?
Hier ein Bsp. von mir!
http://www.homeplate.de
Gruß riethmunk
Halihallo riethmunk
meinst Du vielleicht sowas?
Hier ein Bsp. von mir!
http://www.homeplate.de
jups. Bingo. Das ist etwa das, was ich mir vorstelle. Willst du mir/uns noch sagen, wie
du dieses umgesetzt hast (s. untere Fragen), oder macht es dir nix aus, wenn ich mir
deinen Code mal etwas unter die Lupe nehme?
Mich interessiert die Frage, wie du die aufklappenden Menüs positionierst und mit
welchen "Techniken" du gearbeitet hast (es scheint soweit ich getestet habe mit allen
Browsern zu funktionieren).
Viele Grüsse und danke
Philipp
Halihallo Philipp
meinst Du vielleicht sowas?
Hier ein Bsp. von mir!
http://www.homeplate.dejups. Bingo. Das ist etwa das, was ich mir vorstelle. Willst du mir/uns noch sagen, wie
du dieses umgesetzt hast (s. untere Fragen), oder macht es dir nix aus, wenn ich mir
deinen Code mal etwas unter die Lupe nehme?
Mich interessiert die Frage, wie du die aufklappenden Menüs positionierst und mit
welchen "Techniken" du gearbeitet hast (es scheint soweit ich getestet habe mit allen
Browsern zu funktionieren).
Soweit wie ich den Code nun gesehen habe, arbeitest du mit verstecken von <div>'s. Aber
noch eine kleine Frage: Wie kriegst du die Dinger an der richtigen Stelle angezeigt? -
Die Position setzt du gar nirgens (oder hab ich was übersehen?).
Viele Grüsse
Philipp
Halihallo nochmals
[...]
Erstmal Danke für die Beiträge bisher. Ich habe keine Ahnung wieso, aber irgendwie denke
ich zu weit oder zu kurz, habe mich nicht genügend informiert und durch SelfHTML
durchgelesen; was auch immer. Ich finde und finde keine Lösung, wie ich die div's
richtig positioniere... Keine Ahnung, ich schätze mal, dass es eine ganz einfache Lösung
gibt und diese mir einfach nicht einfallen will. Ich wäre wirklich froh, wenn mir jemand
den lange erwarteten Geistesblitz nennen könnte, ich schäme mich ja auch, sowas nicht
selber fertig zu bringen! *grrrr*
Bzw: die Positionierung ist vielleicht gar nicht nötig, wenn ich das <div> gleich an der richtigen Stelle einfüge, nur, dann habe ich das Problem, dass es gleich den "Platz" für die "Menücard" reserviert, auch wenn es gar nicht sichtbar ist...
Viele Grüsse und Danke
Philipp
Hallo Philipp,
[...]
Erstmal Danke für die Beiträge bisher. Ich habe keine Ahnung wieso, aber irgendwie denke ich zu weit oder zu kurz, habe mich nicht genügend informiert und durch SelfHTML durchgelesen;
So wirds sein ;)
was auch immer. Ich finde und finde keine Lösung, wie ich die div's richtig positioniere... Keine Ahnung, ich schätze mal, dass es eine ganz einfache Lösung gibt und diese mir einfach nicht einfallen will.
Einfallen muß nicht sein, wenn man nachschauen kann: http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm
Ich wäre wirklich froh, wenn mir jemand den lange erwarteten Geistesblitz nennen könnte, ich schäme mich ja auch, sowas nicht selber fertig zu bringen! *grrrr*
Oki, hier mal das Grundgerüst ohne Schnickschnack zum experimentiern (ist aber DOM wird also _so_ in NS4 und IE5 garantiert nicht funktionieren)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Menü einblenden</title>
<style type="text/css">
#menu {position: absolute; left:150px; top:80px; width:200px; height:100px; border:5px outset red; background-color:orange ;visibility:hidden; z-index:100}
#steuerung {position: absolute; left:200px; top:100px; padding:5px; border:4px outset gold; background-color:gold; z-index:10;}
</style>
<script type="text/javascript">
function zeigen(name)
{
document.getElementById(name).style.visibility = "visible";
}
function verbergen(name)
{
document.getElementById(name).style.visibility = "hidden";
}
</script>
</head>
<body>
<div id="menu" onMouseout="verbergen('menu')">
Hier steht nun Dein Menü
</div>
<div id="steuerung" >
<p onMouseOver="zeigen('menu')">Zeige Menü</p>
</div>
</body>
</html>
Ist doch voll easy wa? ;) Probier damit rum, und dann melde Dich wieder wenn's noch Probleme gibt
Grüße aus Nürnberg,
HarryS
Halihallo HarryS
[...]
Erstmal Danke für die Beiträge bisher. Ich habe keine Ahnung wieso, aber irgendwie denke ich zu weit oder zu kurz, habe mich nicht genügend informiert und durch SelfHTML durchgelesen;
So wirds sein ;)
Ufff, dass ich das zu noch hören kriege ;-))
was auch immer. Ich finde und finde keine Lösung, wie ich die div's richtig positioniere... Keine Ahnung, ich schätze mal, dass es eine ganz einfache Lösung gibt und diese mir einfach nicht einfallen will.
Einfallen muß nicht sein, wenn man nachschauen kann: http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm
OK, das kannte ich ja schon; wahrscheinlich bin ich einfach zu dumm um den deutschen
Text zu verstehen ;)
Oki, hier mal das Grundgerüst ohne Schnickschnack zum experimentiern (ist aber DOM wird also _so_ in NS4 und IE5 garantiert nicht funktionieren)
[...]
Vielen Dank für deine Mühe!
Also, ich glaube, dass wir hier langsam sehr nah an die Lösung kommen ;)
Die Menüs sollen nur relativ zum "Menülink" positioniert werden (das lässt sich dann
wohl einfach über position: relative machen [OK, tested[tm]]); dann ein zIndex das das
ganze hinter dem Content verschwindet. Heureka!
Wenn du mich jetzt fragst: Ich habe keine Ahnung, warum mir das nicht vorher eingefallen
ist [das mit position: relativ und zIndex]... Aber eben, es war da kein Wald vor lauter
Bäumen mehr zu sehen und du hast mir anscheinend einige davon vor meinem Kopf
weggesägt ;)
Ist doch voll easy wa? ;)
jetzt verstehe ich, warum niemand geantwortet hat: alle meinten, dass ich sie veräppeln
will, da es wirklich einfach ist ;)
Probier damit rum, und dann melde Dich wieder wenn's noch Probleme gibt
Also, die ersten Tests hab ich durch, soweit keine Probleme. Falls dann beim "richtigen
Design" Probleme auftauchen, lass ich wieder von mir hören.
Viele Grüsse und Danke für die Baumfällerei ;)
Philipp
Hallo Philipp,
Also, ich glaube, dass wir hier langsam sehr nah an die Lösung kommen ;)
Uff, das freut mich.
Die Menüs sollen nur relativ zum "Menülink" positioniert werden (das lässt sich dann
wohl einfach über position: relative machen [OK, tested[tm]]); dann ein zIndex das das
ganze hinter dem Content verschwindet. Heureka!
Moooooment, Für das verschwinden- und erscheinenlassen ist primär nicht der z-index sondern das visibility:visible bzw :hidden zuständig.
Der z-index ist nur für die Staffelung in der z-achse zuständig, also daß der Button eben den Content (der einen z-index kleiner als der Button haben muß) verdeckt, und das per visible erscheinende Menü wiederum Button und Content verdeckt.
So ich hoffe jetzt sind alle Klarheiten beseitigt ;)
Viele Grüsse und Danke für die Baumfällerei
Yeah, meine Kettensäge liegt immer griffbereit *brrmmmbrrrrrmmmmbrrrrrrrrrrmmmm* :)
Grüße aus Nürnberg,
HarryS
Halihallo HarryS
Moooooment, Für das verschwinden- und erscheinenlassen ist primär nicht der z-index sondern das visibility:visible bzw :hidden zuständig.
Der z-index ist nur für die Staffelung in der z-achse zuständig, also daß der Button eben den Content (der einen z-index kleiner als der Button haben muß) verdeckt, und das per visible erscheinende Menü wiederum Button und Content verdeckt.
So ich hoffe jetzt sind alle Klarheiten beseitigt ;)
Ja, wie könnte ich da wiedersprechen :-)
Viele Grüsse und Danke für die Baumfällerei
Yeah, meine Kettensäge liegt immer griffbereit *brrmmmbrrrrrmmmmbrrrrrrrrrrmmmm* :)
Ich komme bestimmt wieder darauf zurück :-)
Das nächste mal mit einer zwei-frame-frage, obwohl ich glaube, dass du dann deine
Kettensäge für was anderes verwenden wirst und auch sollst :-)
Nochmals besten Dank für deine Hilfe!
Viele Grüsse
Philipp
Hallo Philipp,
Viele Grüsse und Danke für die Baumfällerei
Yeah, meine Kettensäge liegt immer griffbereit *brrmmmbrrrrrmmmmbrrrrrrrrrrmmmm*
Ich komme bestimmt wieder darauf zurück :-)
Das nächste mal mit einer zwei-frame-frage, obwohl ich glaube, dass du dann deine Kettensäge für was anderes verwenden wirst und auch sollst :-)
Wuahahaha , das ist echt gut :))))
Nochmals besten Dank für deine Hilfe!
Gern geschehen, das war doch mal ein erfreulicher thread.
Grüße aus Nürnberg,
HarryS
Halihallo Forumer
[...]
Nach genauerer Einsicht des von riethmuk genannten Beispiels, habe ich bemerkt, dass
auch dort die <div>'s absolut positioniert werden und durch z-Index hinter den Content
gestellt werden. Da sich bei mir die Page dynamisch der verwendeten Fenstergrösse
anpasst, ist es nicht möglich die Elemente absolut zu positionieren.
Meine Frage lautet nach wie vor: Wie kann ich die Elemente relativ zu einem anderen
positionieren? - Ich stelle mir das so vor, wie mit den layern von NS. An der Stelle, wo
das Menü erscheinen soll ein <ilayer>, dann ganz unten auf der Seite einen layer, dessen
Position und z-Index man beim aufrufen des Menüs auf die Position des ilayers setzt und
ihn sichtbar macht.
Ich wäre wirklich froh, wenn mir jemand einen Tipp geben könnte, ich scheine einfach
nicht weiterzukommen!
Frage: Warum bekomme ich (weiteren) keine Rückmeldungen?
[ ] du stehst bei mir auf der Ignorier-Liste
[ ] Thema zu ungenau definiert/erleutert, ich weiss nicht, was du willst
[ ] Du verstösst gegen die FAQ
[ ] Das Thema war bereits zu oft diskutiert und steht im Archiv unter [_____________]
[ ] Es gibt keine Lösung für dieses Problem
[ ] Ich war noch nie mit dieser Aufgabenstellung konfrontiert worden und weiss einfach
keine Lösung.
[ ] Das Thema würde zu weit führen.
[ ] Zeitverschwendung, besonders bei Rückfragen
Viele Grüsse
Philipp
Moin!
Da sich bei mir die Page dynamisch der verwendeten Fenstergrösse
anpasst, ist es nicht möglich die Elemente absolut zu positionieren.
Meine Frage lautet nach wie vor: Wie kann ich die Elemente relativ zu einem anderen
positionieren?
Doch, natürlich. Wende folgenden Trick an: Absolute Positionierung bezieht sich immer auf die Koordinaten, die das umgebende, nächsthöhere, absolut oder relativ positionierte Element vorgibt.
Mit anderen Worten: Elementverschachtelung ist der Schlüssel zum Erfolg.
Ein Beispiel:
<div class="hauptmenu">Ich bin ein Hauptmenü</div>
Dieses DIV kannst du ohne Probleme irgendwo auf der Seite einbauen, so dass es sich dem Seitenfluss anpasst.
Wenn du es um ein Untermenü erweitern willst, dann füge das Untermenü an geeigneter Stelle ein, nämlich _innerhalb_:
<div class="hauptmenu">Ich bin ein Hauptmenü
<div class="submenu" id="sub1">Ich bin ein Submenu<br>Ich bin Punkt 2<br>Ich bin Punkt 3</div>
</div>
Soweit, sogut. Wenn du das ohne CSS-Formatierung anguckst, siehst du alles. Sowas kann unerwünscht sein ;-)
Deshalb formatierst du jetzt ein wenig mit CSS:
.hauptmenu {
position:relative; /* Durch relative Positionierung wird das DIV zu einem neuen Container */
left:0px;
top:0px; /* Es wird aber nichts verschoben - das ist der Trick */
}
.submenu {
visibility:hidden; /* Alle Submenüs Verstecken */
position:absolute; /* Submenü absolut positionieren */
left:10px;
top:30px; /* Die Position bezieht sich auf die linke obere Ecke des _Hauptmenüs_ */
}
Beachte: Die ID im DIV wird gar nicht verwendet. Du kannst sie heranziehen, um diesem speziellen Untermenü eigene Eigenschaften zu geben - du brauchst sie aber eigentlich nur deshalb, um mit Javascript drauf zuzugreifen und den Layer anzuzeigen.
Die Positionierung des Submenüs musst du nach eigenen Wünschen vornehmen.
Netscape 4 kann mit dieser Methode durchaus Probleme machen, der positioniert nicht so gerne relativ, wenn ich es richtig erinnere. Also Vorsicht. Zur Not kannst du die Untermenüs immer noch verstecken - da du ja hoffentlich eine Navigationsalternative anbietest für alle Menschen ohne Javascript, ist das aber kein Beinbruch - es reicht dann, wenn man durch Anklicken des Hauptmenüpunktes zu einer Seite mit den Punkten des Untermenüs gelangt.
Bedenke auch: Wenn man mit der Maus einen Menüpunkt überfährt und ein Menü ausklappen sieht, ist man veranlaßt, den Hauptmenüpunkt _nicht_ zu klicken! Alle Computermenüs funktionieren so: Der Hauptmenüpunkt ist nur der Anlaß, das Untermenü auszufahren, er hat aber sonst keine Funktion. Deshalb ist es unter Umständen sehr sinnvoll, hinter dem Hauptmenüpunkt _keine_ wichtige Seite zu verstecken, weil die möglicherweise einfach nicht gefunden wird (ist mir schon so berichtet worden!). Meine Idee: Der Hauptmenüpunkt führt zum ersten Punkt des Untermenüs. So kriegen die Leute, die den Hauptmenüpunkt klicken, eine sinnvolle Inhaltsseite, und es kann sich keine Information verstecken.
Zum Layer-Anzeigen/Verstecken suchst du im Archiv nach "showlayer hidelayer" oder verwendest die Mechanismen der SelfHTML-DHTML-Bibliothek (wenngleich ich bevorzuge, für meine Skripte jeweils genau auf das Problem abgestimmte Skripte zu verwenden, und keine Bibliotheken, die als eierlegende Wollmilchsau meist langsamer sind - Funktionen kopieren geht aber ja auch).
- Sven Rautenberg
Halihallo Sven
Da sich bei mir die Page dynamisch der verwendeten Fenstergrösse
anpasst, ist es nicht möglich die Elemente absolut zu positionieren.
Meine Frage lautet nach wie vor: Wie kann ich die Elemente relativ zu einem anderen
positionieren?Doch, natürlich. Wende folgenden Trick an: Absolute Positionierung bezieht sich immer auf die Koordinaten, die das umgebende, nächsthöhere, absolut oder relativ positionierte Element vorgibt.
Mit anderen Worten: Elementverschachtelung ist der Schlüssel zum Erfolg.
Exakt das wonach ich gesucht habe. Danke vielmals!
Zum Layer-Anzeigen/Verstecken suchst du im Archiv nach "showlayer hidelayer" oder verwendest die Mechanismen der SelfHTML-DHTML-Bibliothek (wenngleich ich bevorzuge, für meine Skripte jeweils genau auf das Problem abgestimmte Skripte zu verwenden, und keine Bibliotheken, die als eierlegende Wollmilchsau meist langsamer sind - Funktionen kopieren geht aber ja auch).
Für meinen Charakter ist diese Vorgehensweise nicht akzeptabel (das einfache kopieren
von Code aus anderen Quellen) ;-)
---
Vielen Dank für deine Ausführungen, sie waren für mich sehr hilfreich, da ich wirklich
ein Defizit an Wissen in diesem Bereich zu haben scheine. Danke auch für die
Beschreibung und mögliche Umsetzung der potenziellen Probleme mit NS4 oder nicht JS-User.
Viele Grüsse
Philipp
Hi there Philipp,
Frage: Warum bekomme ich (weiteren) keine Rückmeldungen?
[x] Man kann nicht mehr alles im Forum lesen und so passiert es, dass man manche Threads nicht liest. Das hat nichts mit dir oder mit deinem Problem zu tun, sonder ein allgemeiner Erscheinung.
[x] Man dächte, die Frage sei schon beantwortet worden.
Grüße
Thomas
Halihallo Thomas
[x] Man kann nicht mehr alles im Forum lesen und so passiert es, dass man manche Threads nicht liest. Das hat nichts mit dir oder mit deinem Problem zu tun, sonder ein allgemeiner Erscheinung.
[x] Man dächte, die Frage sei schon beantwortet worden.
Danke für die Rückmeldung. Deine Antwort leuchtet mir ein und wo du es gleich beim Wort
nennst: Mir geht es nicht anders. Na, wahrscheinlich liegt mein Problem darin, dass ich
zuwenige neue Threads eröffne und deshalb nicht daran "gewöhnt" bin, es am "eigenen
Leibe" zu erfahren ;-)
An alle: Nocheinmal vielen Dank für eure Hilfe; ich sehe langsam die Zielgerade ;-)
Wobei, eine grosse Hürde habe ich noch vor mir: Redesign des Codes, der hat's nötig ;-)
Viele Grüsse
Philipp
Halihallo zusammen
Soweit so gut, der Thread ist schon fast Archivreif, aber vorher noch eine Frage:
Ich hab das Menu soweit angefertigt, ein Beispiel liegt unter
http://www.emedias.ch/tmp/menutest.html. Ich empfehle den Code nicht anzusehen,
sowohl mein JavaScript, wie auch der HTML-Code (Rohfassung vom Designer) ist noch nicht
in der endgültigen Fassung. Diese wird auch noch folgen, aber im Moment hab ich
leider alle Hände voll zu tun...
Nu, wie dem auch sei, weiter zu meiner Frage:
Im NS7 sowie IE4/5 sollte es einwandfrei funktionieren. NS4 wird z. Z. noch nicht
unterstützt. Aber Opera macht mir noch einige Schwierigkeiten:
Wenn ihr euch die Seite mal kurz anschaut, wird euch auffallen, dass die Menufelder vom
unterliegenden Content verdeckt werden. Ich weiss leider noch nicht wieso, zIndex zeigt
keine Wirkung. Könntet ihr mir sagen, was ich zu tun habe [ich hoffe, dass ihr mit der
Beschreibung auch schon wisst, woran es liegt, da der Code schon fast nicht mehr
entzifferbar ist] ?
Das Menu ist oben rechts, unter dem reinfliegenden Banner. Die Links sind noch nicht
gesetzt und alle bestehenden sollten ins Nirvana zeigen (ist ja nur ein Test).
Viele Grüsse
Philipp
Halihallo
Im NS7 sowie IE4/5 sollte es einwandfrei funktionieren. NS4 wird z. Z. noch nicht
unterstützt. Aber Opera macht mir noch einige Schwierigkeiten:
Wenn ihr euch die Seite mal kurz anschaut, wird euch auffallen, dass die Menufelder vom
unterliegenden Content verdeckt werden. Ich weiss leider noch nicht wieso, zIndex zeigt
keine Wirkung. Könntet ihr mir sagen, was ich zu tun habe [ich hoffe, dass ihr mit der
Beschreibung auch schon wisst, woran es liegt, da der Code schon fast nicht mehr
entzifferbar ist] ?
Was mir desweiteren auffällt ist, dass bei dem Netscape 7 der ganze Inhalt (alles mit
unter den Links in der Mitte zu den einzelnen Accounts) nach unten verschoben wird. Ich
folgere, dass die <div> - Platzhalter für die Menukarten den Platz "reservieren" und
somit die Tabelle höher wird (Content nach unten).
Hierzu noch ein Tipp, vielleicht?
Viele Grüsse
Philipp
Halihallo, dieses mal produktiv
wenn ich euch schon abrate den Code anzusehen oder ich mich zumindest dafür "schäme",
sollte ich euch vielleicht eine kleine Zusammenfassung mit den wichtigsten Codestellen
bereitstellen:
CSS-Properties für div's
.mainmenu { position: relative; left: 0px; top: 0px }
.sub_technology { position: absolute; left: -2px; top: 13px; visibility: hidden; }
.sub_info { position: absolute; left: 98px; top: 13px; visibility: hidden; }
.sub_banner { position: absolute; left: 158px; top: 13px; visibility: hidden; }
.sub_preise { position: absolute; left: 261px; top: 13px; visibility: hidden; }
.sub_hilfe { position: absolute; left: 321px; top: 13px; visibility: hidden; }
dann kommt eine Tabelle, welche im mainmenu-div liegt.
Einige Zellen dieser Tabelle enthalten die Links auf die Untermenüs + das eingebettete
Submenü-div (sub_*). Das sieht dann ungefär so aus:
<div class="mainmenu" id="mainmenu">
<table>
<tr>
<td>
<!-- eine Menüzelle -->
<div id="technology" class="sub_technology"
onmouseover="overSubMenu();" onmouseout="outSubMenu();">
<!-- das Submenü -->
<table width="84px">
<tr>
<td width="100%" bgcolor="#ffffff">
<a href="" class="body"> test </a>
<a href="" class="body"> Dateiformate </a>
<a href="" class="body"> Datenschutz </a>
</td>
</tr>
</table>
</div>
<!-- und hier der Link, um das Submenü aufzuklappen -->
<a href="/technology/" class="menulink"
onmouseover="openMenuTechnology();">
test, test
</a>
</td>
</tr>
</table>
</div>
dann noch etwas JS-Code:
// wird z. B. von openMenuTechnology, wie im Beispiel oben geöffnet.
function openMenuCore(el) {
closeMenus();
activateMenuTimeout();
el.visibility = 'visible';
el.zIndex = 100;
}
// overSubMenu und outSubMenu sind irrelevant, da sie lediglich
// ein Timeout (ent- *g*)setzen...
Könnt ihr mit dem schon was anfangen im Bezug auf "meine Fragen beantworten"?
Viele Grüsse
Philipp
Moin!
dann kommt eine Tabelle, welche im mainmenu-div liegt.
Einige Zellen dieser Tabelle enthalten die Links auf die Untermenüs + das eingebettete
Submenü-div (sub_*). Das sieht dann ungefär so aus:
Absolut positionierte DIVs in einer Tabelle sind recht böse. Netscape 4 steigt dabei gerne aus. Außerdem ist eine Tabelle IMO hier gar nicht notwendig. Was bringt die eine Tabelle mit einer Spalte mit einer Zelle mit einem DIV drin? Nichts! Man kann auch ohne Tabelle gleich das DIV nehmen.
Guck dir mal das Menü bei http://www.ivg.de/de/content.html an (diese Seite hat keinen Content, du wirst also nicht abgelenkt ;) - schön untereinander angeordnete Links im Menü, aber nichts, was auch nur irgendwie auf Tabellen hindeutet.
Ich bin mir nicht sicher, aber ich denke, dass ich bei o.g. Seite dasselbe Problem hatte. Dürfte ganz offensichtlich ein Browser-Bug sein. Gelöst habe ich es dann IIRC so, dass ich das Menü als ganzen Block absolut positioniere (auf der Seite einmal #links und einmal #rechts genannt). Dann geht es jedenfalls.
- Sven Rautenberg
Halihallo Sven
Absolut positionierte DIVs in einer Tabelle sind recht böse. Netscape 4 steigt dabei gerne aus. Außerdem ist eine Tabelle IMO hier gar nicht notwendig. Was bringt die eine Tabelle mit einer Spalte mit einer Zelle mit einem DIV drin? Nichts! Man kann auch ohne Tabelle gleich das DIV nehmen.
Naja, die Tabelle war lediglich ein Beispiel. Bei der im <div> enthaltenen Tabelle für
die Submenüs gebe ich dir natürlich recht.
Guck dir mal das Menü bei http://www.ivg.de/de/content.html an (diese Seite hat keinen Content, du wirst also nicht abgelenkt ;) - schön untereinander angeordnete Links im Menü, aber nichts, was auch nur irgendwie auf Tabellen hindeutet.
Interessante Umsetzung! - Ich hatte einen Denkfehler: Ich war der festen Überzeugung,
dass <div>'s allgemein (bezogen auf NS) ziemlich böse sind und habe sie somit ein ganzes
Leben lang gemieden. Ich habe jedoch (wegen euch) meine Positionen diesbezüglich
überdacht; ich unterlag einem grossen Irrtum. Nun ja, ich habe in diesem Thread schon
einiges gelernt und werde wohl in Zukunft einiges anders machen ;-)
Ich bin mir nicht sicher, aber ich denke, dass ich bei o.g. Seite dasselbe Problem hatte. Dürfte ganz offensichtlich ein Browser-Bug sein. Gelöst habe ich es dann IIRC so, dass ich das Menü als ganzen Block absolut positioniere (auf der Seite einmal #links und einmal #rechts genannt). Dann geht es jedenfalls.
Hmmm. Von welchem Problem sprichst du jetzt eingentlich? - Wegen den Darstellungsfehlern
im Opera? - div-Probleme im NS (die du oben hingewiesen hast)? - Oder gar dem
angesprochenen NS7 Problem?
---
Leider kann ich jetzt nicht innerhalb kurzer Zeit die ganze Site überarbeiten, aber
ich werde mir den Thread im Gedächtnis halten und zu gegebener Zeit wieder hervorrufen.
Viele Grüsse und Danke
Philipp