所以假设我有这个标记;
<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
. 通常发生的只是正常的文本换行;第二个span
被撞到第二行的末尾。
但是,我希望这个元素只是单行。现在,当然要实现这一点,您可以这样做;
white-space: nowrap;
overflow: hidden;
但是随后发生的事情是第二个span
消失在遗忘中,因为它被第一个中文本的长度赶走了span
。
我想要实现的是下面第三个示例中的图片。当第一个的内容span
太长而无法显示时,text-overflow: ellipsis;
会用点-点-点切割字符串,而第二个span
将被推到最右边(允许padding
的)。div
max-width
本质上,第一个的伪span
将等于 的宽度div
,不包括它padding
并减去 的宽度span.sticky
,无论它是什么(因为它的内容可能会有所不同,因此没有设置宽度)。
我不知道max-width
在接近这样的事情时是否真的要走,但这是我可以用来最好地描述我想要的行为的方法。
有没有一种非 JS 方法来实现这一点?