2011-01-30 6 views
7

Eventuali duplicati:
resize font to fit in a div (on one line)CSS: Imposta carattere a una dimensione modo che il testo avrebbe occupato intero contenitore

Per una piccola flashcard creatore di app ho bisogno di impostare il tipo di carattere corretto le dimensioni in modo che il testo riempia tutta la larghezza disponibile di un contenitore di dimensioni fisse; come il testo in quattro caselle in questa immagine: two flashcards with text filling all available card area

Una soluzione utilizzando PHP GD è stata fornita a this question. C'è una soluzione lato client con css o javascript a questo problema?

+0

A proposito, 3 * 262 è 786, ma facciamo solo ignorare questo! –

+0

@Pekka - Purtroppo, è vero. Voterò per chiudere - mi dispiace. –

+0

nessun problema, non fa male avere un duplicato in giro per questo –

risposta

3

non è la forza bruta;)

HTML:

<span id="txt">Lorem</span> 
<div id="card"></div> 

CSS:

#card { 
    width: 150px; 
    height: 50px; 
    border: 1px solid black 
} 

#txt { 
    display: none 
} 

JS (utilizzando jQuery):

var size_w = (150/$('#txt').width() - 0.05); 
var size_h = (50/$('#txt').height() - 0.05); 
var size = size_w>size_h?size_h:size_w; 
$('#card').css('font-size', size + 'em'); 
$('#card').text($('#txt').text()); 

violino qui: http://jsfiddle.net/cwfDr/

Bene, ora copre sia l'altezza che la larghezza. ;)

1

Ho esaminato questo anno fa e abbiamo deciso che l'unico modo logico per farlo che non inducesse la follia era usare le immagini anziché il testo per i numeri e quindi calcolare la dimensione delle immagini necessarie in base al larghezza del contenitore (avevamo anche il testo). Inoltre, abbiamo usato un carattere a larghezza fissa selezionato per i numeri/testo.

Un'altra alternativa è il flash di sostituzione del testo, che vi dà più controllo: http://www.mikeindustries.com/blog/archive/2004/08/sifr

Ci possono essere altre tecniche che si sono sviluppate nel corso degli ultimi anni, e forse CSS3 potrebbe aiutare (anche se non può essere ampiamente supportato se lo fa), ma la tecnica dell'immagine ci ha dato il miglior botto per il dollaro.

+0

+1 - sIFR È un vero soccorritore. Grazie mille. –

+0

Nessun problema. Come ho detto, ogni metodo ha i suoi svantaggi, ma abbiamo deciso che il metodo di sostituzione dell'immagine era la meno problematica e la risposta più diretta con il minor numero di inconvenienti. Detto questo, sIFR è sicuramente un buon modo per andare, soprattutto dal momento che è possibile controllare il font stesso dal server. –

2

Ho scritto questo piccolo, minuscolo plug-in per adattarlo alla finestra del browser.

  (function($){ 
       $.fn.extend({ 
        sizeFont: function() { 
         return this.each(function() { 
          $obj = $(this); 
          $obj.css({fontSize:($(window).width()/$obj.width())+'em'}); 
         }); 
        } 
       }); 
      })(jQuery); 

sono sicuro che è possibile modificare questo per soddisfare le vostre esigenze passando $(window) per quello che vuoi. Ecco dal vivo:

http://cullywright.com/

+0

+1 - piccolo plug-in. Grazie. –

Problemi correlati