Изменить размер текста, чтобы он соответствовал DIV — с большей точностью?

Я хотел бы поместить блок текста в div, автоматически изменив размер шрифта.

Я использовал эту функцию jQuery,

$(function() {
    while( $('#fitin div').height() > $('#fitin').height() ) {
        $('#fitin div').css('font-size', (parseInt($('#fitin div').css('font-size')) - 1) + "px" );
    }
});

и это работает хорошо, за исключением того, что точность недостаточно высока (он каждый раз уменьшает размер на 1 пиксель; мне нужно, чтобы он работал с гораздо меньшими приращениями, такими как 0,1 мм). Я что-то упустил здесь?

Спасибо - дайте мне знать, если я не включил достаточно информации.


person user3226007    schedule 23.01.2014    source источник
comment
Вы можете использовать другую единицу измерения, такую ​​как пункты или em, которые могут принимать дробное значение и/или использовать выравнивание. Я не думаю, что вы можете увидеть разницу, указав дробную высоту пикселя. Инструмент, с которым вы можете поиграть: jsfiddle.net/jfriend00/mvYpG   -  person jfriend00    schedule 23.01.2014


Ответы (3)


Из Pixel в Википедии,

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

Тогда у вас не может быть большей точности, чем пиксель.

person Oriol    schedule 23.01.2014
comment
Моя проблема заключается в том, что для абзацев длиной около 40 строк 1 пиксель имеет большое значение для всего текста. На самом деле слишком большая разница! - person user3226007; 23.01.2014

Вы можете проверить FitText. Пользуемся им уже некоторое время и любим его. Должен решить проблему, с которой вы столкнулись.

person Adam Frick    schedule 23.01.2014
comment
Это было немного об О, и не смей позволять нам застать тебя за использованием FitText в тексте абзаца. Это только для гигантского отображаемого текста! тогда шутка? - person user3226007; 23.01.2014
comment
Не знал, что вы собираетесь использовать его для текста абзаца. Этого не было в вашем вопросе. Во всяком случае, FitText может быть хорошим местом, чтобы проверить, как они это сделали, и адаптироваться к вашим потребностям. - person Adam Frick; 23.01.2014

Итак, после нескольких дней попыток я узнал:

Невозможно изменить шрифт абзаца с шагом меньше 1 пикселя НА СТРОКУ! Поэтому нет возможности изменить размер 40 строк, например, с меньшим шагом, чем 40px. Что является проблемой. В конце концов, единственный способ, которым я смог это сделать, — создать файл изображения блока текста. Очень раздражает, если вы вообще хотите что-то изменить, но, похоже, это единственный возможный способ.

person user3226007    schedule 25.01.2014