mira creo que esto resuelve tu duda
http://www.webmasterworld.com/forum83/200.htm
si te fijas sele debe asignar al contenedor del div un porcentaje o un tamaño
para su altura y luego sele asigna al div 100% de altura pero esta altura se toma
con respecto a su contenedor padre, en ese caso es body.
para que funcione el ancho y el alto de un div debe por obligacion
darle tambien medidas de alto y ancho segun sea lo que necesites
al contenedor de dicho div.
MIRA ACA TE DOY OTRO LINK:
http://css-discuss.incutio.com/wiki/...Percent_Height
Y ACA LA TRADUCCION POR MEDIO DEL TRADUCTOR DE GOOGLE LA HICE:
El establecimiento de un div para llenar toda la ventana no es tan simple como poner su altura a 100%. La razón esto no funciona es que los porcentajes (cuando se usa como unidad en la altura o anchura, el tamaño del texto es otra historia) son relativas a las dimensiones de sus padres. Si usted no ha establecido una altura sobre el padre, el div con la altura del 100% no tiene nada en que basar su propia altura.
El otro problema es que probablemente no quieren realmente la altura de 100%. Usted probablemente querrá una altura mínima de 100%. Esto significa que si su página es más larga que el visor (ventana del navegador), el fondo del div aún continuará con el contenido. El elemento del cuerpo es igual a la ventana, por lo que si se establece algo que el 100% del visor, que no nos llevará hasta el visor, y detener a la altura de la ventana del navegador. min-height es lo que realmente quieres.
y si aun sigues con dudas mira aca:
http://www.communitymx.com/abstract.cfm?cid=BAD95 ESPERO QUE ESTO TE SIRVA