2009-07-24 2 views
2

Sie wissen, was ich meine? Wie wir sagen, wir haben:Javascript, das Schriftgröße automatisch auf Element einstellt, damit Text nicht überläuft? (Autofit)

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

Aber dann könnten wir auch haben möglicherweise eine viel längere Textzeichenfolge in diesem div, in diesem Fall ich, dass div font-size wollen würde haben: 7px oder was auch immer, so dass die ganze Saite passt ohne zu überlaufen.

Ich bin sicher, da ist schon so etwas geschrieben, ich würde das nicht neu erfinden wollen. Vorzugsweise ein jQuery-Plugin?

Irgendwelche Vorschläge würden geschätzt! Dank

+0

Dies könnte helfen: http://StackOverflow.com/Questions/118241/calculate-text-width-with-javascript – Nosredna

+0

Diese Frage ist sehr ähnlich zu einem [früher heute gefragt] (http://StackOverflow.com)/questions/1177320/programmatisch-Schriftgröße für Einzelzeilenanzeige/1177753 # 1177753). –

Antwort

5

Basierend auf einer Antwort in Nicks Frage vorgeschlagen:

$(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'); 
     } 
    }); 
}); 

Funktioniert gut für mich!

+0

Danke für die Veröffentlichung der überarbeiteten Lösung :) –

Verwandte Themen