Hallo,
in der Regel solltest Du div-Tags fuer Netscape und MSIE verwenden und zwar im Style-Abschnitt ungefaehr so:
#IDLayer
{
position:absolute;
left:10px;
top:10px;
width:100px; // fuer MSIE
height:50px; // fuer MSIE
clip:rect(0px 100px 50px 0px); // fuer NS
z-index:1;
visibility:hide|show; // fuer NS
visibility:hidden|visible; // fuer MSIE
background-color:green; // fuer MSIE
layer-background-color:green; // fuer NS
}
Innerhalb des body’s steht dann sowas in etwa:
Hauptmenue
Wenn obige Division bei Untermenue aufklappen soll, z.B. ueber onMouseover|out oder onClick, so geht dass nicht im NS. Dann muss man ziemlich aufwendig ueber und einen Wrapper um die div legen. Da ist es besser in die div ein a-tag reinzulegen, denn in dem funktionieren auch die obigen Events im NS. Divisons oder Layers werden genauso absolute positioniert wie die Eintraege des Haupmenues.
Untermenue
Die Sichtbarkeit wird dann wie folgt gesteuert:
NS4.x:
window.document.layers[„IDSub“].visibility=„hide|show“;
MSIE4.x:
window.document.all[„IDSub“].style.visibility=„hidden|visible“;
MSIE5.x / NS6:
window.document.getElementById(„IDSub“).style.visibility=„hidden|visible“;
Abfragen auf den Browser tutst du am einfachsten wie folgt:
NS4.x:
if (window.document.layers) { … }
MSIE4.x:
if (window.document.all) { … }
Beim Rest:
if (window.document.documentElement) { … }
Eine andere Moeglichkeit gibt es meines Erachtens nicht, denn die Browser verwenden unterschiedliche DOM-Modelle und Philosophien.
Ausserdem solltes es jedem mal endlich bewusst werden, dass vom W3C-Konsortium nur Standards bzgl. Cross-Javascript festgelegt werden aber nicht Core-JavaScript-Methoden. Ein grosser Unterschied. Bei Core-Javascript kann jeder Browser-Hersteller das machen wie er gerade lustig ist!
Wenn Du einen Layer dynamsich mit HTML-String belegen willst, dann muss folgendes unterschieden werden:
NS4.x:
with (window.document.layer[„IDSub“].document) {
open(„text/html“,„replace“);
write(strContent);
close();
}
MSIE4.x:
window.document.all[„IDSub“].innerHTML = strContent;
Beim Rest:
window.document.getElementById(„IDSub“).innerHTML = strContent;
innerHTML ist eigentlich nach W3C propritaer, aber trotzdem vom NS6/Morzilla uebernommen worden um die Anpassung von Skripts bzgl. dem MSIE besser handhabbar zu gestalten. Willst Du aber nach W3C gehen, dann stell Dich schon mal auf maechtige Kopfschmerzen ein, denn die Zeiten des „leichten“ Scriptings gehen langsam aber sicher zu ende. Dann musst Du es naemlich ueber createElement(), setAttribute(), appendChild() usw. machen. Dann beginnt endlich die Zeit der „richtigen“ Programmierer fuers Web 
CU