Ian: visible

ich will durch ein Klick auf Menu, dass alle untermenüs angezeigt werden. Ich löste es so, mit Firefox gehts mit IE nicht. Was mache ich falsch?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
<SCRIPT type="text/javascript">

function show() {
 document.getElementById("home").style.visibility = "visible";
 document.getElementById("home").style.background = "#FFFF00";
 document.getElementById("news").style.visibility = "visible";
 document.getElementById("news").style.background = "#FFFF33";
 document.getElementById("links").style.visibility = "visible";
 document.getElementById("links").style.background = "#FFFF66";
 document.getElementById("others").style.visibility = "visible";
 document.getElementById("others").style.background = "#FFFF33";
 document.getElementById("bio").style.visibility = "visible";
 document.getElementById("bio").style.background = "#FFFF00";
 }

</SCRIPT>
<style type="text/css">
<!--
.Stil1 {font-family: Arial, Helvetica, sans-serif}
-->
</style>
</head>

<body>

<table width="791" height="498" border="0">
  <tr>
    <td width="87" height="82">&nbsp;</td>
    <td width="596" align="center">
 <table width="600" border="0">
      <tr>
        <td width="100" >&nbsp;</td>
        <td width="100"></td>
        <td width="100" align="center"><A HREF="Javascript:show()"> Menu  </a></td>
        <td width="100"></td>
        <td width="100"></td>

</tr>
    </table>

<table width="600" border="0">
      <tr>
        <td width="100" align="center" style="visibility:hidden"><div ID="home"> Home </div></td>
        <td width="100" align="center" style="visibility:hidden"><div ID="news"> News </div></td>
        <td width="100" align="center" style="visibility:hidden"><div ID="links"> Links </div></td>
        <td width="100" align="center" style="visibility:hidden"><div ID="others"> Others </div></td>
        <td width="100" align="center" style="visibility:hidden"><div ID="bio"> Bio </div></td>

</tr>
    </table>

</td>

</td>

<td width="94">&nbsp;</td>
  </tr>
  <tr>
    <td height="319">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="89">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>

  1. ich will durch ein Klick auf Menu, dass alle untermenüs angezeigt werden. Ich löste es so, mit Firefox gehts mit IE nicht. Was mache ich falsch?

    Du setzt diverse DIVs auf "Anzeigen", die umschließenden Tabellenzellen bleiben aber unsichtbar. Aus Sicht des IE ist es damit logisch, dass Elemente innerhalb dieser Tabellenzellen unsichtbar bleiben, solange die Zellen unsichtbar sind. Sinnvollerweise blendest du das gesamte Menü ein und aus, nicht die einzelnen DIVs.

    Am Rande bemerkt, deine Menütabelle ist ziemlich unschön, schau dich mal auf http://css.maxdesign.com.au/listamatic/index.htm um.

    Siechfred

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
    1. Ich danke für eure Antworten!!

  2. Hallo,

    du kannst die visibility dort anpassen, wo sie auch zunächst
    per Style festgelegt ist. Also z.B.:

    document.getElementById("home").parentNode.style.visibility = "visible";

    Grundsätzlich kommt mir der Aufbau aber für solch ein Menu auch etwas
    umständlich vor, vielleicht kannst du mehr per CSS machen oder beim
    JavaScript Klassen abfragen?

    Grüße
    Cyx23

  3. Hello out there!

    <td width="100" align="center" style="visibility:hidden"><div ID="home"> Home </div></td>

    Das ist keine gute Idee (vom Missbrauch von 'table' zu Layoutzwecken mal abgesehen). Nutzer ohne JavaScript bekommen das Menü nicht zu sehen.

    Setze 'visibility: hidden' nicht im HTML-Quelltext (schon gar nicht inline in 'style'-Attributen), sondern mit JavaScript!

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)