Ae cara, depois de ficar 3 horas procurando uma solução na net na referencia oficial do mozilla e do msdn, e não encontrando (a solução só chegará com o CSS3).
Eu ralei a cabeça e fiquei mais algumas horas desenvolvendo esta função que faz a quebra de palavras. A tão desejada
word-wrap para Firefox.
Foi testado com sucesso no FF1.5 e no IE6.
Por favor, se for usar não tire meus nomes dos crétidos
Também postei esta
solução de quebra palavras para FF no meu blog.
<style>
#url { border:1px solid black; width:50px; }
p {border:1px solid blue; }
</style>
<script>
function wordWrap(){
/******
* wordWrap - Efetua quebra em palavras que não cabem na largura
* de seu elemento pai (até que chegue o CSS3)
* Use a vontade mas coloque meu nome nos créditos. Tenha ética.
* Dúvidas, me mande um email.
* Versão: 1.0 - 26/04/2006
* Autor: Micox - Náiron José C. Guimarães - micoxjcg@yahoo.com.br
* Uso: chame a função no onload do body.
* coloque a classe "word-wrap" nos parágrafos que quiser a quebra
*******/
var larg_total,larg_carac,quant_quebra,pos_quebra;
var elementos,quem, caracs, texto, display_orig;
elementos = document.getElementsByTagName("p")
for(var i=0; i<elementos.length;i++){
if(elementos[i].className=="word-wrap"){
quem = elementos[i];
quem.innerHTML = String(quem.innerHTML).replace(/ /g,"Ø")
texto = String(quem.innerHTML)
quem.innerHTML = " "
display_orig = quem.style.display;
quem.style.display="block";
larg_oficial = quem.offsetWidth;
//alert("oficial: " + larg_oficial)
//alert("display " + quem.style.display)
if(!document.all) quem.style.display="table";
//alert("display " + quem.style.display)
quem.innerHTML = texto;
larg_total = quem.offsetWidth;
//alert("total: " + larg_total)
pos_quebra = 0;
caracs = texto.length;
texto = texto.replace(/Ø/g," ")
larg_carac = larg_total / caracs
if(larg_total>larg_oficial){
quant_quebra = parseInt(larg_oficial/larg_carac)
quant_quebra = quant_quebra - (parseInt(quant_quebra/6)) //quanto menor o num, maior a garantia;
quem.innerHTML = ""
while(pos_quebra<=caracs){
quem.innerHTML = quem.innerHTML + texto.substring(pos_quebra,pos_quebra + quant_quebra) + " "
pos_quebra = pos_quebra + quant_quebra;
}
}else{
quem.innerHTML = texto;
}//end if do larg_total>larg_oficial
quem.style.display = display_orig;
}//end if do word wrap
}//end for loop dos elementos
}
</script>
<body onload="wordWrap()">
<div id="url">
<p>URL:</p>
<p class="word-wrap">lala </p>
<p class="word-wrap">EstaEUmaLinhaQueDeveraSerQuebradaPoisÉGrandeDemais</p>
<p class="word-wrap">EstaEOutraLinha,QueDeveraSerQuebrada.PoisÉGrandeDemais.MasComPontuacao</p>
<p class="word-wrap">abc defgh 890123456789012 ijklmnopqrstu 9012345678901 vivaO micox </p>
<p class="word-wrap">Vou colocar aqui uma frase comum pragente ver comé que ela se comporta</p>
</div>
</body>
Tags pra busca: word wrap word-wrap quebra palavra linha texto palavras grandes largura width firefox ff ie internet explorer overflow nao cabe estoura layout.
Testem ae...