Creé una variante de https://stackoverflow.com/a/17845473/189411
donde puede establecer el tamaño de texto mínimo y máximo en relación con el tamaño mínimo y máximo de la casilla que desea "comprobar" el tamaño. Además, puede verificar el tamaño del elemento dom diferente al cuadro donde desea aplicar el tamaño del texto.
Cambia el tamaño del texto entre 19px y 25px en el elemento # size-2, basado en el ancho de 500px y 960px del elemento # size-2
resizeTextInRange(500,960,19,25,'#size-2');
Cambia el tamaño del texto entre 13px y 20px en el elemento # size-1, según el ancho de 500px y 960px del elemento del cuerpo
resizeTextInRange(500,960,13,20,'#size-1','body');
el código completo está ahí https://github.com/kiuz/sandbox-html-js-css/tree/gh-pages/text-resize-in-range-of-text-and-screen/src
function inRange (x,min,max) {
return Math.min(Math.max(x, min), max);
}
function resizeTextInRange(minW,maxW,textMinS,textMaxS, elementApply, elementCheck=0) {
if(elementCheck==0){elementCheck=elementApply;}
var ww = $(elementCheck).width();
var difW = maxW-minW;
var difT = textMaxS- textMinS;
var rapW = (ww-minW);
var out=(difT/100)*(rapW/(difW/100))+textMinS;
var normalizedOut = inRange(out, textMinS, textMaxS);
$(elementApply).css('font-size',normalizedOut+'px');
console.log(normalizedOut);
}
$(function () {
resizeTextInRange(500,960,19,25,'#size-2');
resizeTextInRange(500,960,13,20,'#size-1','body');
$(window).resize(function () {
resizeTextInRange(500,960,19,25,'#size-2');
resizeTextInRange(500,960,13,20,'#size-1','body');
});
});
<meta name="viewport" content="width=device-width" />
También puede usarlo enmax-width
lugar demax-device-width
para una sensación más 'receptiva'.