是否可以使用CSS将文本长度限制为“n”行(或者在垂直溢出时将其剪切) .
text-overflow: ellipsis;
仅适用于1行文本 .
原文:
Ultrices natoque mus mattis,aliquam,cras in pellentesque tincidunt elit purus lectus,vel ut aliquet,elementum nunc nunc rhoncus placerat urna!坐下来看看! Ut penatibus turpis mus tincidunt! Dapibus sed aenean,magna sagittis,lorem velit
想要输出(2行):
Ultrices natoque mus mattis,aliquam,cras in pellentesque tincidunt elit purus lectus,vel ut aliquet,elementum ...
11 回答
有一种方法,但它只是webkit . 但是,当您将其与
line-height: X;
和max-height: X*N;
结合使用时,它也可以在其他浏览器中使用,只是没有省略号 .演示:http://jsfiddle.net/csYjC/1131/
你能做的是以下几点:
其中
max-height:
=line-height:
×<number-of-lines>
在em
中 .据我所知,这可能只使用
height: (some em value); overflow: hidden
,即便如此,它最终也不会有花哨的...
.如果这不是一个选项,我认为没有一些服务器端预处理(很难,因为文本流不可能可靠地预测)或jQuery(可能但可能复杂)是不可能的 .
Working Cross-browser Solution
多年来这个问题困扰着我们所有人......
为了在所有情况下提供帮助,我已经列出了仅CSS方法,以及jss方法,以防css警告出现问题 .
这是我提出的一个解决方案,它适用于所有情况,但有一些小问题 .
基础很简单,它隐藏了 Span 的溢出,并根据Eugene Xa建议的线高设置最大高度 .
然后在包含div之后有一个伪类,它可以很好地放置省略号 .
Caveats
无论是否需要,此解决方案将始终放置省略号 .
如果最后一行以结尾的句子结束,你最终会得到四个点......
您需要对合理的文本对齐感到满意 .
省略号将在文本的右侧,看起来很草率 .
Code + Snippet
jsfiddle
jQuery Approach
在我看来,这是最好的解决方案,但不是每个人都可以使用JS . 基本上,jQuery将检查任何.text元素,如果有比预设的max var更多的字符,它将关闭其余部分并添加省略号 .
这种方法没有任何警告,但是这个代码示例仅用于演示基本思想 - 我不会在 生产环境 中使用它而不改进它有两个原因:
1)它将重写.text elems的内部html . 是否需要 . 2)没有测试检查内部html没有嵌套元素 - 所以你很依赖作者正确使用.text .
已编辑
Thanks for the catch @markzzz
Code & Snippet
jsfiddle
this thread的解决方案是使用jquery插件dotdotdot . 不是CSS解决方案,但它为"read more"链接,动态调整大小等提供了很多选项 .
目前你不能,但将来你将能够使用
text-overflow:ellipis-lastline
. 目前它在Opera 10.60中提供供应商前缀:example以下CSS类帮助我获得了两行省略号 .
我有一个很好的解决方案,但它使用渐变的省略号 . 它有效,当你有动态文本,所以你不知道它是否足够长,需要一个椭圆 . 优点是您不必进行任何JavaScript计算,它适用于包括表格单元格的可变宽度容器,并且是跨浏览器的 . 它使用了几个额外的div,但它很容易实现 .
标记:
CSS:
博文:http://salzerdesign.com/blog/?p=453
示例页面:http://salzerdesign.com/test/fade.html
我真的很喜欢线路钳,但还没有对firefox的支持..所以我选择了数学计算而只是隐藏溢出
现在假设您要删除并通过带有链接的jQuery添加此类,您需要有一个额外的像素,因此最大高度为63像素,这是因为您需要每次检查高度是否高于62px,但在4行的情况下你会得到一个假的真实,所以一个额外的像素将解决这个问题,它不会产生任何额外的问题
我将粘贴一个coffeescript作为一个例子,使用一些默认隐藏的链接,类读取更多和无读取,它将删除溢出不需要它的那些并删除正文 - 溢出类
基本示例代码,学习代码很容易 . 检查样式CSS注释 .
我一直在寻找这个,但后来我意识到,该死的我的网站使用PHP!为什么不在文本输入上使用trim功能并使用最大长度....
对于那些使用php的人来说,这也是一个可能的解决方案:http://ideone.com/PsTaI