Gernot Back: height von <tr> per DOM ändern funktioniert nur im IE

Beitrag lesen

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 &nbsp; 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