限制网页上字符串的显示长度

时间:2008-10-12 12:12:57

标签: javascript css string dhtml

我正在寻找一种技术(javascript,CSS,无论???),它可以让我控制显示的字符串数量。字符串是搜索的结果(因此最初未知)。一个简单的字符计数方法是微不足道的,但不可接受,因为它需要处理比例字体。换句话说,如果我想限制为70像素,那么下面的示例显示了不同的字符数(9和15),两者都是相同的: -

欢迎M ...
嗨,伊恩,如果我......

如果查看Yahoo搜索结果,他们可以限制标题字符串的长度,并在长字符串的末尾添加省略号以表示更多。 (尝试网站:loot.com无线+键盘+和+鼠标,看看雅虎实现这个的一个例子)

任何想法?

5 个答案:

答案 0 :(得分:2)

也许CSS属性overflow: hidden;可以与width一起帮助您。

答案 1 :(得分:1)

使用固定宽度的span,overflow-x:hidden和white-space:nowrap将是一个开始。

要在跨浏览器场景中获取省略号将很困难。 IE有文本溢出:elipsis,但这是非标准的。这是在Opera中使用-o-text-overflow进行模拟的。然而,mozilla没有这个。雅虎Javascript API处理这个问题。

答案 2 :(得分:0)

雅虎做这个服务器端,在HTML中返回截断和省略号('...')。大概这是在字符数上完成的,如果这不是你的选择,那么服务器端就会出局。

overflow: hidden以外我不确定CSS可以帮到你。您可以使用Javascript测量包含元素的宽度,并根据该文本截断文本。这可以与overflow:hidden;结合使用,因此文本元素不会突然调整大小,但您可能必须提取文本并在页面上添加临时元素以进行测量。根据要截断的元素数量,这可能效果不佳。

另一个稍微粗暴的选择是测量包含字母“W”的元素的宽度,然后执行字符计数并截断(char_count * width_of_w) > desired_width

你可以使用text-wrap: none;来阻止文本换行到新行,虽然这是一个CSS3属性,最后我检查过只有IE支持(想象一下,当我发现那个时,我感到震惊!)。

答案 3 :(得分:0)

对于跨浏览器的纯CSS解决方案,请看看Hedger Wang的文本溢出:省略号原型,在这里:

http://www.hedgerwow.com/360/dhtml/text_overflow/demo2.php

答案 4 :(得分:0)

  

在CSS中:.class-name {       宽度:5em;       白色空间:nowrap;       文本溢出:省略号; }

     

希望它可以帮到你。