因此,假设我有这个标记;文字的动态最大宽度
<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
将被推到最右边(div
允许的padding
)。
本质上,第一span
的伪max-width
将等于所述div
的宽度,但不包括其padding
和扣除的span.sticky
宽度,无论其可以是(作为它的内容可能有所不同,因此,宽度没有设置)。
我不知道max-width
实际上是在接近这样的东西时走的路,但这是我可以用来最好地描述我想要的行为。
是否有一个非JS的方法来实现这个?
我想使它完全动态的,它可以用一个小JS dohickey是计算的实际'MAX-width'第一个得到改善基于'div'的宽度和'sticky'的实际内容宽度'span',因为CSS中缺少类似的功能。但这是一个很好的开始。 –
拨弄周围创造这个; http://jsfiddle.net/GEzXU/ - 关于这种方法有多聪明的意见受到欢迎。 –
有没有办法让这个工作使用外部div的动态宽度? – crobicha