Foros del Web » Programando para Internet » Javascript »

Problema con 'offsetHeight' en FireFox

Estas en el tema de Problema con 'offsetHeight' en FireFox en el foro de Javascript en Foros del Web. Hola a todos. Tengo un problemilla que me está dando ya más de un dolor de cabeza. Tengo una página web diseñada con capas. Una ...
  #1 (permalink)  
Antiguo 24/07/2006, 20:30
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 3
Antigüedad: 19 años, 1 mes
Puntos: 0
Problema con 'offsetHeight' en FireFox

Hola a todos. Tengo un problemilla que me está dando ya más de un dolor de cabeza. Tengo una página web diseñada con capas. Una de ellas, la de los contenidos, es dinámica. Le he asignado un 'height: 400px;' en los estilos. Pero claro, al contener más texto, dicha capa se expande hacia abajo (overflow: visible;). En el Internet Explorer, calculo la altura de esa capa dinámica mediante la propiedad 'offsetHeight' y al comprobarlo con un 'alert' me da la altura correcta. Ahora bien, si lo compruebo en FireFox, la altura que me devuelve es 400px, la que tengo fijada en los estilos. He probado también con 'clientHeight', poniendo en los estilos la propiedad 'height' a 'auto', a no ponerla... y sigue devolviéndome la misma altura. Tenéis idea de por qué pasa esto en FireFox, o si es normal? Os agradecería muchísimo si me pudierais dar ideas alternativas para calcular la altura de esa capa dinámica en FireFox.

Ya he buscado por el foro mensajes por el estilo, pero en todos aparece la propiedad offsetHeight, y en el IE me funciona, pero en el FireFox no. Creo que está todo claro, pero si necesitáis que ponga parte del código, decídmelo. Saludos y gracias de antemano.
  #2 (permalink)  
Antiguo 25/07/2006, 01:00
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61

Creo que deberías no poner ningún height y poner overflow:hidden;

Sé que puede parecer una contradicción pero funciona.

Quedo a la espera de que lo puedas resolver así para pasar el mensaje a CSS.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 25/07/2006, 03:03
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Buenos días compañeros

He estado mirando elproblema de meter texto mas grande de tus 400px, y si, es cierto que en firefox, hace el extraño de que te deja la capa igual, pero el texto ocupa más. (si le pone sun borde a la capa, ves que el texto se sale por debajo)

Esto es devido al tratamiento y estandarización de los Objetos dentro del DOM de Firefox (que es distinto al de IE).

He mirado, que si pones dentro de la capa una tabal donde se contenga tu información, las tablas (más concretamente el TD que contiene la información) se comportan de forma correcta.

te dejo el código para que lo mires, asi no tienes que hacértelo.
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<
html>
<
head>
    <
title>Medidas de capa</title>
    <
script language="JavaScript1.2" type="text/javascript">
        function 
dameMedidas()
        {
            var 
miCapa document.getElementById("miCapa");
            
miContenedor miCapa.getElementsByTagName("td")[0// Me quedo con el primer TD que hay dentro de la capa;
            
alert("Antes de meter texto dinámico  ->   anchura [" miContenedor.offsetWidth "]    Altura [" miContenedor.clientHeight "]");
            
            
            
miContenedor.innerHTML += "<br><br><br>En la casa de los locos de Sevilla  estaba un hombre a quien sus parientes habían puesto allí por falto de juicio. Era graduado en cánones por Osuna [40], pero aunque lo fuera por Salamanca, según opinión de muchos, no dejara de ser loco. Este tal graduado, al cabo de algunos años de recogimiento[*], se dio a entender que estaba cuerdo y en su entero juicio, y con esta imaginación escribió al arzobispo suplicándole encarecidamente y con muy concertadas razones le mandase sacar de aquella miseria en que vivía, pues por la misericordia de Dios había ya cobrado el juicio perdido, pero que sus parientes, por gozar de la parte de su hacienda, le tenían allí, y a pesar de la verdad querían que fuese loco hasta la muerte. El arzobispo, persuadido de muchos billetes concertados y discretos, mandó a un capellán suyo se informase del retor de la casa si era verdad lo que aquel licenciado le escribía, y que asimesmo hablase con el loco, y que si le pareciese que tenía juicio, le sacase y pusiese en libertad. Hízolo así el capellán, y el retor le dijo que aquel hombre aún se estaba loco, que puesto que hablaba muchas veces como persona de grande entendimiento, al cabo disparaba con tantas necedades, que en muchas y en grandes igualaban a sus primeras discreciones, como se podía hacer la esperiencia hablándole. Quiso hacerla el capellán, y, poniéndole con el loco, habló con él una hora y más, y en todo aquel tiempo jamás el loco dijo razón torcida ni disparatada, antes habló tan atentadamente, que el capellán fue forzado a creer que el loco estaba cuerdo. Y entre otras cosas que el loco le dijo fue que el retor le tenía ojeriza, por no perder los regalos que sus parientes le hacían[*] porque dijese que aún estaba loco y con lúcidos intervalos; y que el ";

            
alert("DESPUES de meter texto dinámico  ->   anchura [" miContenedor.offsetWidth "]    Altura [" miContenedor.clientHeight "]");
        }
    
</script>
</head>

<body>
<div id="miCapa" style="position:absolute;top:40px;left:200px;width:400px;height:400px;border:1px solid red">
    <table cellpadding="0" cellspacing="0" width="400" style="height:400px" border="0">
        <tr>
            <td><a href="javascript:dameMedidas()">Pulsame</a></td>
        </tr>
    </table>

</div>


</body>
</html> 
Mira a ver si metiendo la información dentro de una tabla (dentro de tu div) te solventa el problema, el cual, es bastante raro...

Voy a mirar si existe algún tipo de atributo para hcer que se "autoestire" una capa dependiendo del contenido que tenga dentro.

Saludos a todos

  #4 (permalink)  
Antiguo 26/07/2006, 17:16
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 3
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola. Perdón por no poder responder antes. Estuve liado intentando arreglar mi fallo. Gracias a los dos por responderme. Probé ambos métodos pero sin los resultados que esperaba. Al final decidí probar cambiando el 'height' a 'auto', tanto de la capa contenedora como de la que tenía el contenido dinámico, y al probar el javascript que tenía hecho, funcionó a la perfección. La capa contenedora, al expandirse por el contenido dinámico, dezplaza hacia abajo la capa del footer, que era el efecto que quería conseguir. De todas formas, a pesar de ser mea culpa, os agradezco de nuevo la ayuda aportada. Hasta pronto, compañeros.
  #5 (permalink)  
Antiguo 23/01/2007, 22:51
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Problema con 'offsetHeight' en FireFox

Y como puede hacerse para que ese OVERFLOW cargue lo ultimo del TEXTO.

El diva carga un mundo de lineas...

Como podemos hacer que muestre la ultima ?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:20.