在尝试了几个JavaScript代码段和用于将文本拟合到div中的库之后,我感到有些难受,因为这些都没有处理DIV的“高度”,文本可能会溢出......
所以我在CoffeeScript中编写了这个简单的函数,它测试文本是否溢出div并且它将减小它的大小直到它适合!
函数查找带有.Resig类标记的元素,并仅调整它们的大小。
autoSizeText = -> elements = $('.resize') console.log elements return if elements.length < 0 for el in elements do (el) -> resizeText = -> elNewFontSize = (parseInt($(el).css('font-size').slice(0, -2)) - 1) + 'px' $(el).css('font-size', elNewFontSize) resizeText() while el.scrollHeight > el.offsetHeight
这是JavaScript编译版本:
var autoSizeText;autoSizeText = function() { var el, elements, _i, _len, _results; elements = $('.resize'); console.log(elements); if (elements.length < 0) { return; } _results = []; for (_i = 0, _len = elements.length; _i < _len; _i++) { el = elements[_i]; _results.push((function(el) { var resizeText, _results1; resizeText = function() { var elNewFontSize; elNewFontSize = (parseInt($(el).css('font-size').slice(0, -2)) - 1) + 'px'; return $(el).css('font-size', elNewFontSize); }; _results1 = []; while (el.scrollHeight > el.offsetHeight) { _results1.push(resizeText()); } return _results1; })(el)); } return _results;};