Problem mit anzeigen einer Tabelle
firestone
- html
0 Steel0 firestone
0 Gunnar Bittersmann0 Flanna
Hallo Zusammen,
ich habe in meiner Seite folgende Tabelle
<table id="B" style="display:none" width="100%" border="1">
<tr >
<td valign="middle" align="left" >Wert 1</td>
<td valign="middle" align="left" >Wert 2</td>
<td valign="middle" align="left" >Wert 3</td>
</tr>
<tr >
<td valign="middle" align="left" >Wert 1</td>
<td valign="middle" align="left" >Wert 2</td>
<td valign="middle" align="left" >Wert 3</td>
</tr>
</table>
Dazu habe ich folgenden Button definiert
<input type="button" name="legende" value="Status-Legende anzeigen" onclick="javascript:show('B')">
Wenn die Seite aufgebaut wird soll die Tabelle zuerst nicht zusehen sein erst wenn man auf den Button klickt. Im IE Funktioniert das ganze auch super. Im Mozilla Firefox habe ich allerdingsdas Problem, das er die width angabe ignoriert. Er schiebt die Tabellenspalten zusammen. Nehme ich das display:none weg, so wird die Tabelle sofort angezeigt in richtiger Breite klicke ich allerdings dann einmal auf den Button schiebt er sie wieder zusammen.
Was mache ich falsch :(
Lg Firestone
Hi!
Was macht denn show()?
Hi!
Was macht denn show()?
Hier der Code
function show (member) {
if (document.getElementById) {
if (document.getElementById(member).style.display == "block") {
document.getElementById(member).style.display = "none";
} else {
document.getElementById(member).style.display = "block";
}
}
}
Hi!
Was macht denn show()?
Hier der Code
function show (member) {
if (document.getElementById) {
if (document.getElementById(member).style.display == "block") {
document.getElementById(member).style.display = "none";
} else {
document.getElementById(member).style.display = "block";
}
}
}
Ok wenn ich die Funktion show so abänder funktioniert es
~~~html
function show (member) {
if (document.getElementById) {
if (document.getElementById(member).style.display == "") {
document.getElementById(member).style.display = "none";
} else {
document.getElementById(member).style.display = "";
}
}
}
Aber warum wer kann mir das erklären ?
@@firestone:
nuqneH
Aber warum wer kann mir das erklären ?
Das in http://forum.de.selfhtml.org/archiv/2010/2/t195589/#m1309269 zu Tabellenzeilen Gesagte gilt auch für Tabellen. Hier wäre "table" der richtige Wert für die 'display'-Eigenschaft; das verstehen alte IEs aber nicht.
Qapla'
@@firestone:
nuqneH
Aber warum wer kann mir das erklären ?
Das in http://forum.de.selfhtml.org/archiv/2010/2/t195589/#m1309269 zu Tabellenzeilen Gesagte gilt auch für Tabellen. Hier wäre "table" der richtige Wert für die 'display'-Eigenschaft; das verstehen alte IEs aber nicht.
Qapla'
Gibt es denn ein Problem wenn ich das auf dislpay:"" stehen lasse damit funktioniert es ja scheinbar .
Hiho!
Gibt es denn ein Problem wenn ich das auf dislpay:"" stehen lasse damit funktioniert es ja scheinbar .
Generell nicht. Denn, wie im von gunnar verlinktem Thread beschrieben, wird dann der Browserdefaultwert genommen. Damit verlaesst Du Dich natuerlich auf die korrekte Umsetzung durch den Browser.
@@Steel:
nuqneH
Damit verlaesst Du Dich natuerlich auf die korrekte Umsetzung durch den Browser.
Und genau das will man ja auch. Es wird ja wohl kein Browser "none" als Defaultwert haben.
Qapla'
Moin!
Und genau das will man ja auch. Es wird ja wohl kein Browser "none" als Defaultwert haben.
Wolln wirs hoffen. Eine konkrete Angabe, was man genau will, halte ich immer fuer besser. Dass diese in diesem Fall aber nicht von jedem aktuell im Umlauf befindlichen Browsern verstanden wird, ist natuerlich eine Sache fuer sich.
@@Steel:
nuqneH
Damit verlaesst Du Dich natuerlich auf die korrekte Umsetzung durch den Browser.
Und genau das will man ja auch. Es wird ja wohl kein Browser "none" als Defaultwert haben.
Qapla'
Ok Super danke :) ihr habt mir geholfen dann änder ich die Funktion ab :).
Lg Firestone
@@firestone:
nuqneH
<table id="B" style="display:none" width="100%" border="1">
<tr ><td valign="middle" align="left" >Wert 1</td> <td valign="middle" align="left" >Wert 2</td> <td valign="middle" align="left" >Wert 3</td>
--8<--
Was mache ich falsch :(
Du gibst an Darstellung mit missbilligten HTML-Attributen an. Entferne sie und verwende CSS – und zwar im Styelsheet, nicht inline.
In deinem Markup bleibt geanu das übrig:
<table id="B">
<tr>
<td>Wert 1</td>
<td>Wert 2</td>
<td>Wert 3</td>
usw.
Im Stylesheet kannst du schreiben:
#B td { vertical-align: left; text-align: left }
Aber wozu eigentlich? Das ist die Defaulteinstellung der Browser.
Ausblenden solltest du die Tabelle nur bei aktiviertem JavaScript; sonst kann der Nutzer sie ja nicht einblenden.
Dazu 'html' oder 'body' per JavaScript die Klasse "js" verpassen (Javascript mehrstufig zünden [PERFORMANCE-BP2]) und im Stylesheet:
.js #B { display: none }
Qapla'
Hallo,
Im Stylesheet kannst du schreiben:
#B td { vertical-align: left; text-align: left }
das kann man schreiben, natürlich.
Aber was stellst du dir bei "left" für die Eigenschaft vertical-align vor?
*scnr*
Martin
Hi ther,
Aber was stellst du dir bei "left" für die Eigenschaft vertical-align vor?
ein topologisches Paradoxon...
@@Klawischnigg:
nuqneH
Aber was stellst du dir bei "left" für die Eigenschaft vertical-align vor?
Dawar ich doch tatsächlich schon beim zweiten Teil des Gedankens.
ein topologisches Paradoxon...
*g*
Aber mal im Ernst: Wie wirken denn eigentlich text-align und vertical-align bei von oben nach unten geschriebenen Schriften?
Sieht so aus, als ob eine der beiden Eigenschaften falsch benannt wurde.
Qapla'
Versuch mal wenn Du die width als ccs-style angibst anstatt des HTML-Attributs.
Also so:
<table id="B" style="display:none;width:100%" border="1">
Mit den Attributen hatte ich im FF auch hin und wieder kleinere Probleme.
mfg
Flanna