|
|||
Unterschiede zwischen IE, Opera und Mozilla ...
Nachdem die Menus soweit so funktioniert haben wie sie sollen, dachte ich mir ich schaus mir auch mal mit Opera und Firefox an...
Leider musste ich feststellen das in dem horizontalen Menu gravierende Unterschiede gibt. Werft bitte mal einen Blick auf den Quellcode und helft mir herauszufinden wieso, und wie ich das abstellen kann. Vielen Dank Sayon |
Sponsored Links |
|
|||
Oh, ein Javascriptmenü. Dass man davon gar nichts mitbekommt, wenn man Javascript deaktiviert hat oder einen Browser nutzt, der kein javascript kann weisst Du?
Dass Suchmaschinen kein Javascript können, und somit Deine Seiten nicht indizieren, sollte Dir auch klar sein. Wie man es richtig macht: http://www.alistapart.com/articles/dropdowns/ Validier Dein Dokument erst einmal und korrigiere die Fehler, vielleicht haut es hin, wenn die Browser das Dokument im Standards-mode rendern. |
|
|||
Hmm.... Javascript... eigentlich nur das Zeilen wie
Code:
document.getElementById('menuh$id').style.visibility='hidden' Der Rest (die Links) steht doch im Quellcode eigentlich drin... für CSS Effekte dieser Art habe ich doch gar keine andere Wahl oder? Validieren werd ich es jedenfalls mal noch... ist ja bisher auch nur ein Konzept. |
|
|||
Zitat:
Zitat:
Ein Beispiel was (mit Ausnahme des IE ) ohne Javascript funktioniert: http://www.htmldog.com/articles/suckerfish/example/ |
|
|||
Na, mit den richtigen Links waren wohl eher die Suchmaschinen gemeint.....
Und Menüs, die im IE nicht gehen, kann man leider in der Praxis nicht benutzen..... Ich hätte noch zwei Alternativen: 1. Ein Menü mit kleinem Javascript als "Hilfsmotor" für den IE - bei den anderen Browsern kann man es auch ausmachen - kleiner Schönheitsfehler: im Opera "hakt" es etwas - wenn man von der anderen Seite aus nochmal drüberfährt, geht es dann. Das ganze funktioniert sogar noch eine Ebene tiefer. - Meine Erfindung ist es nicht, habs nur in meiner Trickkiste abgespeichert. Code:
Das CSS: <style type="text/css"> <!-- ul.dropdown { list-style: none; margin:0; padding:0; width:100%; } ul.dropdown * ul { list-style: none; margin:0; padding: 0; display:none; position:absolute; } ul.dropdown li { float:left; padding:2px; /* helps Opera with hover - do not remove! */ } ul.dropdown li * li { float:none; position: relative; } ul.dropdown ul * ul { left:98%; top:0; width:100%; } ul.dropdown a { display:block; background-color:#c0c0c0; border:1px solid black; } ul.dropdown ul * a { width:13em; } ul.dropdown li:hover ul ul, ul.dropdown li:hover ul ul ul, ul.dropdown li:hover ul ul ul ul { display:none; } ul.dropdown li:hover ul, ul.dropdown ul li:hover ul, ul.dropdown ul ul li:hover ul { display:block; } ul.dropdown a.has_submenu { background:url(http://www.gy-mi.de/images/elegant_grey/ddm_arrow_right.gif) no-repeat right; } ul.dropdown { font:10px verdana; } ul.dropdown ul { font:10px verdana; background-color:#f0f0f0; border:1px outset #888; } ul.dropdown a { color:#000; padding:4px; text-decoration:none; } ul.dropdown a:hover { background-color:#ddd; color:#888; } //--> </style> Code:
<script type="text/javascript"> <!-- function enable_menues_for_ie() { if (document.all) { uls = document.getElementsByTagName('UL'); for(i = 0; i < uls.length; i++) { if (uls[i].className == 'dropdown') { var lis = uls[i].getElementsByTagName('li'); for (j = 0; j < lis.length; j++) { if(lis[j].lastChild.tagName == 'UL') { lis[j].onmouseover = function() { this.lastChild.style.display = 'block'; } lis[j].onmouseout = function() { this.lastChild.style.display = 'none'; } } } } } } } //--> </script> Code:
<body onload="enable_menues_for_ie();"> <ul id="mainmenu" class="dropdown">[*]Link1 [*] Link2 <ul>[*]Link2a[*]Link2b[/list] [*] Link3 <ul>[*]link3a[*]link3b[*] link3c <ul>[*]untermenu1[*]untermenü2[*]untermenü3 [/list] [/list] [*] Link4 <ul>[*]link4a[*]link4b [/list] [*] Link5 <ul>[*]link5a[*] link5b <ul>[*]untermenü1[*]untermenü2 [/list] [/list] [/list] Es gibt sogar eine reine CSS-Lösung, die Stu Nicholson ausgetüftelt hat - aber die ist nicht valide und der Code sieht recht haarsträubend aus - aber funktioniert in allen Browsern! Hier: http://www.stunicholls.myby.co.uk/menus/dropdown.html Hier noch ein paar Worte dazu, er selbst sieht es nur als Gag: http://www.stunicholls.myby.co.uk/me...opdownfun.html |
|
|||
Zitat:
Allerdings bleibt, dass das Menü nicht angezeigt wird, wenn javascript deaktiviert ist. Zitat:
Zitat:
|
|
|||
Die CSS Spass-Variante benutzt Tabellen, das wollte ich eigentlich nicht.
Schade... hab mal Spasseshalber Java abgestellt... klar das es dann nicht mehr geht... aber dann geht sowieso jegliche aktive Dynamik verloren... Den Fall das es kein Java gibt könnte man ja mit einer Browserweiche regeln, die dann bei Bedarf halt ein anderes Stylesheet benutzt. Wieso wird OnClick, OnMousover und OnMouseout nicht akzeptiert? Es funktioniert doch in allen Browsern... Dann bräuchten wir nur noch klären war die Ebene teilweise so verschieden überlappen... Ich weiß nicht so recht was mir das Suckerfish Beispiel bringen soll, Java nutzt es auch, außer das es halt die oben genannten Javascript Funktionen nicht braucht. Ich wollte eigentlich eine Variante schreiben die leicht zu kapieren ist mit nur minimalen Aufwand... |
Sponsored Links |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Wie zwischen Netscape und Mozilla unterscheiden? | Zausel | (X)HTML | 14 | 05.07.2005 16:47 |
Viele Probleme mit der Darstellung bei Mozilla und Opera. | weeh | CSS | 10 | 12.08.2004 11:43 |
Border/Box Problem zwischen Mozilla und Opera | cro4ky | CSS | 3 | 12.03.2004 09:21 |
problem mit css interpretation von IE - Opera - Mozilla | captain | CSS | 2 | 03.03.2004 13:15 |
Externe CSS Definition fkt mit Opera 7 / Mozilla 1.5 nicht | uri2510 | CSS | 4 | 17.12.2003 15:29 |