我正在寻找一种技术(javascript,CSS,无论???),它可以让我控制显示的字符串数量。字符串是搜索的结果(因此最初未知)。一个简单的字符计数方法是微不足道的,但不可接受,因为它需要处理比例字体。换句话说,如果我想限制为70像素,那么下面的示例显示了不同的字符数(9和15),两者都是相同的: -
欢迎M ...
嗨,伊恩,如果我......
如果查看Yahoo搜索结果,他们可以限制标题字符串的长度,并在长字符串的末尾添加省略号以表示更多。 (尝试网站:loot.com无线+键盘+和+鼠标,看看雅虎实现这个的一个例子)
任何想法?
答案 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的文本溢出:省略号原型,在这里:
答案 4 :(得分:0)
在CSS中:.class-name { 宽度:5em; 白色空间:nowrap; 文本溢出:省略号; }
希望它可以帮到你。