• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

kalin

[Resolvido] Como calcular a altura de um <div> em firefox

5 mensagens neste tópico

O código funciona no IE, mas no firefox não

function alturaIgual(){
var divs, contDivs, alturaMax, alturaDiv, d;

// pesquisa os elementos <div> no documento
    divs = document.getElementsByTagName('div');

contDivs = [];

    // inicializar a altura m&#225;xima
    alturaMax = 0;

    // o ciclo for vai fazer uma iteracao por todos os <div>
    for(var i=0;i<divs.length;i++){

// pesquisa todos os <div> com o atributo da classe = colunas
        if(/\bcolunas\b/.test(divs[i].className)){
	d = divs[i];
            contDivs[contDivs.length] = d;

            // determina a altura do <div>
            if(d.offsetHeight){
			alturaDiv = d.offsetHeight;
		}
		else
			if(d.style.pixelHeight){
				divHeight = d.style.pixelHeight;
                }

                // calcula a altura maxima
			// isto pode ser feito de outra maneira, com um teste para ver se a alturaMax > alturaDiv
			alturaMax = Math.max(alturaMax,alturaDiv);
          }
     }

     // tornar a altura de todos os <div> no documento, que pertencam a classe "colunas", iguais
     for(var i=0;i<contDivs.length;i++){
          contDivs[i].style.height = alturaMax;
     }
}

já me foi dito que o problema poderia ser d.offsetHeight ou d.style.pixelHeight, alguêm sabe como fazer isto correctamente no firefox.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com a ajuda do Web Developer no firefox consegui ver que o erro ocorre na instrução:

contDivs[i].style.height = alturaMax;

mais concretamente o erro é o seguinte:

"Erro ao interpretar o valor da propriedade 'heigth'. Declaração ignorada"

logo na parte em que era para atribuir a mesma altura a todos os <div> da classe o firefox encontra este erro e não prossegue.

Então alguém sabe como é a instrução para mudar a altura de um <div> para o firefox?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tudo o que é CSS tem que ter uma medida expectuando o valor 0

para atribuir a height tens que ser ontDivs.style.height = alturaMax + 'px';

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

experimenta:

window.document.getElementById('id_do_div').style.height = 300;

funciona no IE e no FireFox.. pelo menos no meu 2.0.0.6 funciona ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tudo o que é CSS tem que ter uma medida expectuando o valor 0

para atribuir a height tens que ser ontDivs.style.height = alturaMax + 'px';

Tenho que agradecer ao colega Sven o problema com o código era mesmo a falta do 'px', portanto o código que é necessário mudar para que fique a funcionar tanto no IE como no firefox é:

for(var i=0;i<contDivs.length;i++){

contDivs.style.height = alturaMax + 'px';

    }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora