visible
Ian
- javascript
0 Siechfred0 ian
0 Cyx230 Gunnar Bittersmann
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"> </td>
<td width="596" align="center">
<table width="600" border="0">
<tr>
<td width="100" > </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"> </td>
</tr>
<tr>
<td height="319"> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td height="89"> </td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
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
Ich danke für eure Antworten!!
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
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