では、このマークアップがあるとしましょう。
<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 番目span
は 2 番目の行の最後にぶつかります。
ただし、この要素は 1 行だけにしたいと考えています。もちろん、これを達成するには、そうします。
white-space: nowrap;
overflow: hidden;
しかし、その後span
、最初のテキストの長さによって追い払われるため、2番目が忘却の中に消えてしまいますspan
。
私が達成したいのは、以下の 3 番目の例に示されているものです。最初のコンテンツspan
が表示するには長すぎる場合text-overflow: ellipsis;
、文字列をドット ドット ドットで切断し、2 番目のコンテンツをspan
右端 (許容範囲)padding
にプッシュします。div
max-width
基本的に、最初の疑似はspan
の幅に等しくなり、div
それを除外しpadding
て の幅を差し引きspan.sticky
ます (内容が異なる可能性があるため、幅は設定されません)。
max-width
このようなものにアプローチするときに実際に行くべきかどうかはわかりませんが、それは私が望む動作を最もよく説明するために使用できるものです.
これを達成するJS以外の方法はありますか?