height von <tr> per DOM ändern funktioniert nur im IE
Dunk
- javascript
1 Beat2 ChrisB0 suit0 Cheatah
Holla,
ich möchte über einen einfachen Button die Höhe einer Tabellenzeile ändern.
Das ganze sieht in der simpelsten Form so aus:
<html>
<head>
<script type="text/javascript">
function changeSize()
{
if(document.getElementById("row1").height == "200")
{
document.getElementById("row1").height = "500";
}
else
{
document.getElementById("row1").height = "200";
}
}
</script>
</head>
<body>
<table border="1">
<tr id="row1" height="200px">
<td>
---
</td>
</tr>
<tr>
<td>
<input type="button" onclick="changeSize()" value="aendern" />
</td>
</tr>
</table>
</body>
</html>
Dieses Beispiel funktioniert im IE wie erwartet. Im Firefox und in Chrome passiert jedoch nichts.
Was zur Hölle mache ich falsch? Ich bin ratlos und für jeden Hinweis dankbar.
if(document.getElementById("row1").height == "200")
...
<tr id="row1" height="200px">
Was zur Hölle mache ich falsch? Ich bin ratlos und für jeden Hinweis dankbar.
Sei konsistent!
Entweder der Wert lautet 200px oder er lautet 200.
mfg Beat
Hi,
if(document.getElementById("row1").height == "200")
...
<tr id="row1" height="200px">Was zur Hölle mache ich falsch? Ich bin ratlos und für jeden Hinweis dankbar.
Sei konsistent!
Entweder der Wert lautet 200px oder er lautet 200.
*Entweder* benutzt du das (nie zum HTML-Standard gehört habende) Attribut height - dann lautet der Wert schlicht "200", ohne Angabe einer Einheit, wenn Pixel gemeint sind;
*oder* du nutzt für die Beeinflussung der Darstellung das, was dafür vorgesehen ist: CSS, hier die height-Eigenschaft (dann in diesem Falle anzusprechen über bspw. element.style - dann lautet der Wert "200px".
MfG ChrisB
Hallo ChrisB,
*Entweder* benutzt du das (nie zum HTML-Standard gehört habende) Attribut height - dann lautet der Wert schlicht "200", ohne Angabe einer Einheit, wenn Pixel gemeint sind;
*oder* du nutzt für die Beeinflussung der Darstellung das, was dafür vorgesehen ist: CSS, hier die height-Eigenschaft (dann in diesem Falle anzusprechen über bspw. element.style - dann lautet der Wert "200px".
Ich habe gerade mal beides ausprobiert, sogar bei bei verschiedenen DOCTYPES im Quirks- und im Standardsmode. Der DOCTYPE schien in den von mir getesten Browsern allerdings keinen Unterschied zu machen.
Safari 4.0.5. weigert sich unter Windows komplett, die Höhe von TR-Elementen über JavaScript zu manipulieren. In Bezug auf Tabellen-Zell-Elemente geht es in allen Browsern sicherer.
Folgendes Script habe ich dabei auf eine Tabelle mit drei mal drei TD-Zellen losgelassen, die jeweils mit einem
gefüllt waren.
window.onload = function() {
alert("Test 1:\ndocument.getElementsByTagName('TR')[1].height = 100;");
document.getElementsByTagName('TR')[1].height = 100;
alert("Test 2:\ndocument.getElementsByTagName('TD')[4].height = 200;");
document.getElementsByTagName('TD')[4].height = 200;
alert("Test 3:\ndocument.getElementsByTagName('TR')[1].style.height = '300px';");
document.getElementsByTagName('TR')[1].style.height = '300px';
alert("Test 4\ndocument.getElementsByTagName('TD')[4].style.height = '400px';");
document.getElementsByTagName('TD')[4].style.height = '400px';
}
In Firefox 3.5.8 brachte nur Test 1 keine Veränderung der mittleren Zeile mit sich. In Opera 9.27, Opera 10.53, IE6 und IE8 lief alles, im IE7 wurde nur die letzte Zeilenhöhen-Veränderung sichtbar, auch wenn alle (zwar nicht angehalten durch die Alerts, die sich vordrängeln) offensichtlich ausgeführt wurden.
Gruß Gernot
Sei konsistent!
Entweder der Wert lautet 200px oder er lautet 200.
Warum gibt's eigentlich keinen "Dieses Posting wurde 0 mal als seltsam und verwirrend bewertet."-Hinweis?
Hi,
<tr id="row1" height="200px">
Sei konsistent!
Entweder der Wert lautet 200px oder er lautet 200.
wenn er "200px" lautet, ist die Tabellenzeile 200px Pixel hoch, also 200 Quadratpixel. Zweidimensionale Höhen werden von den aktuellen Monitoren nicht dargestellt.
Cheatah
@@Cheatah:
nuqneH
wenn er "200px" lautet, ist die Tabellenzeile 200px Pixel hoch, also 200 Quadratpixel. Zweidimensionale Höhen werden von den aktuellen Monitoren nicht dargestellt.
Dass 3D-Monitore heute schon aktuell sind, ist dir doch aber nicht entgangen, oder?
Hm, oder wird die dritte Dimension schon durch eine Breitenangabe in Quadratpixel ausgefüllt?
Qapla'
Dass 3D-Monitore heute schon aktuell sind, ist dir doch aber nicht entgangen, oder?
Aber die piken dir nicht ins Auge, wenn du ein width: 10px; height: 10px; depth: 50000px; notierst :p
Hi,
wenn er "200px" lautet, ist die Tabellenzeile 200px Pixel hoch, also 200 Quadratpixel. Zweidimensionale Höhen werden von den aktuellen Monitoren nicht dargestellt.
Dass 3D-Monitore heute schon aktuell sind, ist dir doch aber nicht entgangen, oder?
nein, aber mir ist wohl derjenige entgangen, der zweidimensionale Höhen darstellt. Magst Du mir dazu einen Link schicken? Eventuell finde ich dort auch eine Betrachtung, was zweidimensionale Höhen überhaupt sind ...
Cheatah
Hallo Cheatah,
... was zweidimensionale Höhen überhaupt sind ...
na Höhen und Tiefen.
Gruß, Jürgen
Hi Cheatah.
[...] also 200 Quadratpixel. Zweidimensionale Höhen werden von den aktuellen Monitoren nicht dargestellt.
Sind Quadratpixel nicht irgendwie vierdimansional? :-)
Viele Gruesse,
der Bademeister