だから私はこのマークアップを持っているとしましょう。テキストの動的最大幅
<div>
<span>Text one</span>
<span class="sticky">ABC</span>
</div>
<div>
<span>Some other text</span>
<span class="sticky">DEF</span>
</div>
<div>
<span>Lorem dolor sit amet lorem ipsum dolor</span>
<span class="sticky">GHI</span>
</div>
CSSを使用すると、次のような結果が得られます。
ただし、最初のspan
のテキストがdiv
の割り当てられた幅よりも長い場合に問題が発生します。普通のテキストの折り返しだけです。 2番目の行の末尾に2番目のspan
がバンプされます。
ただし、この要素を単一行にする必要があります。今、もちろんこれを達成するために、あなたはそうします。
white-space: nowrap;
overflow: hidden;
しかし、それは最初span
のテキストの長さによって追い払わだとして、次に何が起こるかは二span
は、忘却の彼方に消えています。
私が達成したいのは、下の3番目の例で描いたものです。最初のspan
の内容が長すぎて表示できない場合、text-overflow: ellipsis;
はドットドットで文字列を切り取り、2番目のspan
は右端(div
のpadding
)にプッシュされます。
本質的に、第一span
の擬似max-width
は、それはそれの内容が変化することができるように(であるので、幅できるどんな、そのpadding
とspan.sticky
の幅を差し引い除く、div
の幅に等しくなります設定されていません)。
max-width
が実際にこのようなことに近づくときに行く方法であるかどうかはわかりませんが、私が望む動作を最もよく説明するために使用することができます。
これを達成するJS以外の方法はありますか?
ラインを壊すことなく、それは最初の実際の 'MAX-width'を算出した小さなJSのdohickeyを改善することができ、省略記号になり、ボタンがそれに従わなければなりませんでした'div'の幅と' sticky'の実際のコンテンツの幅に基づいて 'span'を設定します。しかし、それは素晴らしいスタートです。 –
これを作成するために前後します。 http://jsfiddle.net/GEzXU/ - このアプローチがいかにスマートであるかについての意見を歓迎します。 –
外側のdivに動的な幅を使用してこの作業を行う方法はありますか? – crobicha