可能有一种方法不那么疯狂,但这应该尽可能精确。本质上,您有一个 div 用于测量其宽度并逐渐增加文本内容,直到它超过目标 div 的宽度。然后,将目标 div 的<p>
字体大小更改为测量 div 的负 1:
http://jsfiddle.net/ExplosionPIlls/VUfAw/
var $measurer = $("<div>").css({
position: 'fixed',
top: '100%'
}).attr('id', 'measurer');
$measurer.append($("<p>").text($("p").text()));
$measurer.appendTo("body");
while ($measurer.width() <= $("#content").width()) {
$("#measurer p").css('font-size', '+=1px');
console.log($("#measurer").width());
}
$("#measurer p").css('font-size', '-=1px');
$("#content p").css('font-size', $("#measurer p").css('font-size'));
$measurer.remove();