CSS: установите размер шрифта таким образом, чтобы текст занимал весь контейнер

Возможный дубликат:
изменить размер шрифта, чтобы он поместился в div (в одной строке)

Для небольшого приложения для создания флеш-карт мне нужно установить правильный размер шрифта, чтобы текст заполнил всю доступную ширину контейнера фиксированного размера; как текст в четырех коробках на этом рисунке: две карточки с текстом, заполняющие всю доступную область карты

На этот вопрос было предоставлено решение с использованием PHP GD. Есть ли клиентская проблема с css или javascript для этой проблемы?

это не грубая сила;)

HTML:

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

CSS:

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

JS (с использованием 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()); 

скрипка здесь: http://jsfiddle.net/cwfDr/

Хорошо, теперь он охватывает как высоту, так и ширину. 😉

Я написал этот крошечный крошечный плагин, чтобы он соответствовал окну браузера.

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

Я уверен, что вы можете изменить это, чтобы соответствовать вашим потребностям, переключив $(window) на все, что захотите. Вот он в прямом эфире:

http://cullywright.com/

Я изучил эти годы назад, и мы решили, что единственный логичный способ сделать это, который не вызвал безумия, заключался в использовании изображений вместо текста для чисел, а затем вычислении размера изображений, необходимых на основе ширины контейнера (у нас также был текст). Кроме того, мы использовали шрифт фиксированной ширины, выбранный для чисел / текста.

Другой альтернативой является замена флэш-текста, что дает вам больше контроля: http://www.mikeindustries.com/blog/archive/2004/08/sifr

Могут быть другие методы, которые были разработаны в течение последних нескольких лет, и, возможно, CSS3 может помочь (хотя, возможно, это не поддерживается в целом, если это так), но техника изображения дала нам лучший удар для доллара.