任意のテキストを、指定した幅に改行無しで一行に表示させたい時に、 JavaScript でフォントのサイズを変化させて実現する例。
<span id="scaled" style = "white-space: pre;">ここに動的に変化するテキスト</span>
Prototype.js 使ってます。
function fitFont()
{
var fs = 40; // 標準フォント
var fw = 300; // max width
Element.setStyle($("scaled"), {"font-size": fs + "px"});
while( true )
{
if( Element.getWidth($("scaled")) > fw && fs > 1)
{
fs -= 1;
Element.setStyle($("scaled"), {"font-size": fs + "px"});
}
else
{
return;
}
}
}