3

丸められていない要素の幅を取得する方法をずっと探していました。これが必要な理由は、display inline-block で左にフロートされたいくつかの要素があり、コンテナ div の幅全体を使用するように、それらの要素内のテキストを自動サイズ変更しようとしているためです。私はこのようにやっています:

  1. 1 などの小さいテキスト サイズを選択します
  2. すべてのテキストをそのサイズにする
  3. すべての浮動要素の幅を合計します
  4. コンテナの幅よりも小さい場合は、フォント サイズを小さな値で増やします
  5. 最大サイズになるまで2~4を繰り返す

問題は、使用されていないスペースが常に残っていることです。これは、正確なサイズを取得するためにフォント サイズを少しずつ (0.01 など) 増やしているためだと思います。要素の幅は切り捨てのため変化しません。私はインクリメントし続けることができ、切り上げを決定し、合計幅が制限を超えるまで変化しません。これは、私が話していることを示す JSFiddle です。

http://jsfiddle.net/Pkws3/

JavaScript は少しわかりにくいかもしれませんが、基本的に時間を節約するために、フォントサイズの大きな増分から始めて、目標サイズに達すると、より正確になるように増分を小さくします。

私は使用してみました:

$(this).width()
parseFloat($(this).css("width"))
window.getComputedStyle

しかし、どれも機能していないようです。

4

2 に答える 2

1

これは私のために働いた:

$(this)[0].getBoundingClientRect().width

ssorallen から: https://stackoverflow.com/a/18341704/299408

于 2013-08-30T20:22:43.130 に答える
-1

浮動小数点数をwhile数に変換する場合は、次のように小数を切り捨てることができます。$(this).width().toFixed(0)

または、に別の数値を渡すことで、小数点以下の桁数を変更することもできますtoFixed

于 2012-12-13T05:27:29.433 に答える