2016-05-20 8 views
1

解決策を見つけることができない。私は100px幅の「ボタン」divと可変ラベルの30pxの高さを持っています。フォントサイズを縮小して、ラベルテキスト全体が常に見えるようにします。固定長のdivに収まるように任意の長さの文字列をサイズ変更する

JSまたはCSSソリューションはどちらもjqueryで動作します。

フラッシュでは、テキストの行数を調べることでこの問題を解決しました.1を超えるとフォントサイズが1行に収まるまで縮小します。それがjavascriptで可能かどうかはわかりません。

編集:その人は可変サイズのコンテナを持っていたので、異なる解決策が可能でした。

+0

[DOM要素内のテキスト行をカウントするにはどうすればよいですか?私はできますか?](http://stackoverflow.com/questions/783899/how-can-i-count-text-lines-inside-an-dom-element-can-i) – damos

+0

ラベルのような割合でフォントサイズを使用{ font-size:60%; } –

答えて

1

ここでできることの1つは、次のCSS属性でdivテキストと同様のサイズのラベルテキストを取得してからスクロール幅を数え、次にjavascriptループを作成し、fontwidthをいくつかのピクセル単位で減らしてスクロール幅がわかるまであなたの希望する幅よりも小さい。私はこれがあなたの質問に答えるん

// dummy divelement 
var divElement = document.getElementById('#myelement') 
var fontSize = 15; // Starting from 15 
while(divElement.offsetWidth < divElement.scrollWidth) { 
    divElement.style.fontSize = fontSize + "px" 
    fontSize--; 
} 

を試してみました

white-space: pre; 
overflow-x: scroll; 

小Javascriptコード?または私はあなたにすべての例を提供すべきですか?

+0

@Shaun Dreclin:これで問題は解決しますか? –

+0

はい、これは私が必要なものです!私は空白を追加しなければならなかった:nowrap;余分なテキストが横向きではなく縦向きに折り返してスクロールしていたので、私のdivに追加しました。ありがとうございました:D –

+0

@ShaunDreclin:乾杯! –

関連する問題