Doctype/clientHeight probleem

Status
Niet open voor verdere reacties.

Avarus

Nieuwe gebruiker
Lid geworden
11 jan 2009
Berichten
2
Dag mensen,

Ik heb onderstaand bericht op een Engelstalig forum geplaatst, maar ik acht de kans hier groter op een goed antwoord. Zou iemand mij kunnen helpen?

I'm working on a website that requires the height detection of a certain <div> named container. Another <div> should be the same height minus a small amount. I got the script for it in a seperate .js file

Code:
function height()
	{
	var height = document.getElementById('container').clientHeight - 164;
	document.getElementById('main').style.height = ''+height+'px';
	}

This works perfectly in FF, but in IE7, it just gives a gray page and some errors. When I remove the doctype, no errors are caused, but then my design gets messed up (tables and images not connecting tightly). I've read some small posts/articles about clientHeight not being probably read when doctype is used, but I didn't find any working answer yet.

When I remove the part .getElementById('container'), the page does get loaded, but then the script doesn't work (of course). Also, when I change .getElementById('container') into .body or something, the same effect occurs.

Does anyone know a solution to this annoying problem?

(btw my doctype is XHTML 1.0 Transitional)
 
Als je de hoogte van die div wilt achterhalen, dan moet je offsetHeight gebruiken.

PHP:
function height(){
	var height = document.getElementById('container').offsetHeight - 164;
	document.getElementById('main').style.height = height+'px';
}

Hier bij moet je wel rekening houden met eventuele borders. De offsetHeight van een div is de totale hoogte van het zichtbare element. Als je een div hebt met deze style:

PHP:
<div id="container" style="height: 200px; border: 2px solid #f00"></div>

Zal

PHP:
document.getElementById('container').offsetHeight

204 retourneren

EDIT: de ''+ voor height in je functie kunnen ook weg.
 
Laatst bewerkt:
De <div> container is gewoon een onzichtbare wrapper, maar in dit geval gaat het niet om een verkeerd formaat, maar een volledig lichtgrijze pagina met een error

EDIT: ach natuurlijk... de inhoud van de <div> wordt bepaald door AJAX, was natuurlijk niet goed gaat met offsetHeight. Bedankt in ieder geval
 
Laatst bewerkt:
Dat kan best goed gaan, maar we hebben geen idee wat je precies doet. Dus misschien kan het ook wel niet goed gaan, dat kunnen we eigenlijk niet weten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan