... und CSS (display) in Opera und Netscape 4
sokie2
- javascript
Hallo Leute!
Ich habe folgendes Problem:
Ich moechte eine Seite mit viel Text anbieten, welcher hierachisch geordnet ist.
Damit die Seite nicht so lang wird, soll einiges zu Anfang mit display:none verborgen werden, um nachher bei Bedarf mit Javascript herbeigezaubert zu werden.
Ich habe nun eine einfache, standardkonforme Loesung, die bei mir mit Win-IE 5.5, Mozilla 0.98 und Konqueror 3.0 funktioniert.
Hat jemand Ideen, wie dies auch für Netscape 4 und Opera zu realisieren ist?
Netscape hat schon Probleme mit dem CSS; Opera kommt damit klar, scheitert allerdings dann beim Javascript.
Ich waere echt dankbar für Ideen,
Gruss, sokie2
ps: Hier mein Loesungsansatz:
<html> <head>
<style type="text/css">
<!--
#text02 { display:none; }
-->
</style>
<script language="JavaScript">
<!--
function anzeige() {
if (document.getElementById("text02").style.display=="block") {
document.getElementById("text02").style.display="none"; }
else {
document.getElementById("text02").style.display="block"; }
}
//-->
</script> <noscript></noscript>
</head> <body>
<h1>Spielerei Javascript und display (CSS 2)</h1>
<p>01: Ganz viel Text davor</p>
<h3><a href="linkFuerJavascriptDeaktivert"
onclick="anzeige(); return false;">Titel 02</a></h3>
<p id="text02">02: Ganz viel Text dazwischen<p>
<p>03: Ganz viel Text danach</p>
</body> </html>
moin
Ich habe folgendes Problem:
Ich moechte eine Seite mit viel Text anbieten, welcher hierachisch geordnet ist.
Damit die Seite nicht so lang wird, soll einiges zu Anfang mit display:none verborgen werden, um nachher bei Bedarf mit Javascript herbeigezaubert zu werden.
Ich habe nun eine einfache, standardkonforme Loesung, die bei mir mit Win-IE 5.5, Mozilla 0.98 und Konqueror 3.0 funktioniert.
Hat jemand Ideen, wie dies auch für Netscape 4 und Opera zu realisieren ist?
Netscape hat schon Probleme mit dem CSS; Opera kommt damit klar, scheitert allerdings dann beim Javascript.
zumindest Opera kann display:none; nicht dynamisch verändern.
du solltest visibility: verwenden.
Fabian
ps: geh mal davon aus, dass das _so_ wie geplant im NN4 nur über extra-<layer> zu realisieren ist...
Netscape hat schon Probleme mit dem CSS; Opera kommt damit klar, scheitert allerdings dann beim Javascript.
zumindest Opera kann display:none; nicht dynamisch verändern.
du solltest visibility: verwenden.
Fabian
ps: geh mal davon aus, dass das _so_ wie geplant im NN4 nur über extra-<layer> zu realisieren ist...
Hi Fabian,
Extragebastel fuer NN4 wird es nichtgeben.
Zu Opera: Da bin ich jetzt erstaunt, dass er display nicht dynamisch veraendern kann, visibility aber schon (Hast du dafuer vielleicht eine Quelle?)
Visibility will ich nicht verwenden, weil dann der benoetigte Platz reserviert wird und viel weisse Flaeche entsteht. Da kann ich dann sofort auch alles anzeigen. Siehe [url:http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#visibility]
Gruss, sokie2
hi
Extragebastel fuer NN4 wird es nichtgeben.
gut, dann lass es halt, ich tu es ja auch nicht ;-)
Zu Opera: Da bin ich jetzt erstaunt, dass er display nicht dynamisch veraendern kann, visibility aber schon (Hast du dafuer vielleicht eine Quelle?)
quelle hab ich leider nicht *such*, ich weiß jedoch, dass es so _ist_, hatte den bug vor kurzem auch zu spüren bekommen.
Visibility will ich nicht verwenden, weil dann der benoetigte Platz reserviert wird und viel weisse Flaeche entsteht. Da kann ich dann sofort auch alles anzeigen.
dann umschreibe "display:none" halt mit css:
{visibility:hidden; overflow:hidden; width:0px;}
kommt dem ganzen _sehr_ nahe IMO ;-)
Siehe [url:http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#visibility]
ach ne ;-) kenn ich :P
Gruss, sokie2
Fabian
Visibility will ich nicht verwenden, weil dann der benoetigte Platz reserviert wird und viel weisse Flaeche entsteht. Da kann ich dann sofort auch alles anzeigen.
dann umschreibe "display:none" halt mit css:
{visibility:hidden; overflow:hidden; width:0px;}
kommt dem ganzen _sehr_ nahe IMO ;-)
Erst mal danke fuer den Tip, Fabian.
Aber irgendwie kriege ich das nicht richtig hin. Ich denke, die Hoehe sollte ich auch noch beschraenken, aber selbst dann macht der IE 5.5 weiter soviel Platz und der Opera kommt immer noch nicht mit meinem Skript zurecht (er laesst auch noch ein bisschen zuviel Platz ueber).
Siehe [url:http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#visibility]
ach ne ;-) kenn ich :P
Vielleicht liest ja noch sonst jemand mit. Soviel Service muss sein :-)
Gruss, sokie2
ps:
Nicht so richtig funktionierender Quelltextschnipsel:
<style type="text/css">
<!--
#text02 {visibility:hidden; overflow:hidden; height:0px; width:0px;}
-->
</style>
<script language="JavaScript">
<!--
function anzeige() {
if (document.getElementById("text02").style.visibility=="visible") {
document.getElementById("text02").style.visibility="hidden";
document.getElementById("text02").style.overflow="hidden";
document.getElementById("text02").style.width="0px";
document.getElementById("text02").style.height="0px";
}
else {
document.getElementById("text02").style.visibility="visible";
document.getElementById("text02").style.width="100px";
document.getElementById("text02").style.height="0px";
document.getElementById("text02").style.overflow="visible";
}
}
//-->
</script>