2009-07-24 4 views
2

Vous savez ce que je veux dire? Comme nous allons dire que nous avons:Javascript qui définit automatiquement la taille de la police sur l'élément afin que le texte ne déborde pas? (autofit)

<div style="width:100px;font-size:10px">Some Text</div> 

Mais nous pourrions aussi éventuellement avoir une chaîne de texte beaucoup plus dans cette div, dans ce cas, je voudrais que div pour avoir la taille de la police: 7px ou autre, de sorte que la chaîne entière s'adapte sans déborder.

Je suis sûr qu'il y a déjà quelque chose comme ça écrit, je ne voudrais pas le réinventer. De préférence un plugin jQuery?

Toutes les suggestions seraient appréciées! Merci

+0

Cela pourrait aider: http://stackoverflow.com/questions/118241/calculate-text-width-with-javascript – Nosredna

+0

Cette question est très similaire à celle-ci [a demandé plus tôt aujourd'hui] (http://stackoverflow.com/questions/1177320/programatically-font-size-for-single-line-display/1177753 # 1177753). –

Répondre

5

Sur la base d'une réponse proposée dans la question de Nick:

$(function() { 
    $(".shrinkByWidth").each(function() { 
     var targetWidth = $(this).parent(':first').width(); 

     if (isNaN(parseInt($(this).css("font-size")))) 
      $(this).css("font-size", '24px'); 

     while ($(this).width() > targetWidth) 
     { 
      $(this).css("font-size", (parseInt($(this).css("font-size")) - 1) + 'px'); 
     } 
    }); 
}); 

fonctionne très bien pour moi!

+0

Merci d'avoir posté la solution révisée :) –

Questions connexes