javascript - 在 div 中将文本换行在两行内

标签 javascript css

我希望在特殊宽度的 div 中仅用两行包裹文本。如果文本超出两行的长度,那么我希望显示省略号。有什么解决方案可以使用 CSS 做到这一点吗?

我使用了 css 属性 text-overflow:ellipsis。它只适用于一行。我还使用了 -webkit-line-clamp:2。它在 chrome 和 safari 浏览器中运行良好。 文本换行需要支持所有浏览器(firefox 和 IE9)。

请给我建议使用 css 或 javacsript 的解决方案?

提前致谢。

我观察到的一件事.. 如果文本适合完整的两行,则显示如下。

testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttestte 
testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttestte ...

假设文本适合两行的一半

 testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttestte 
    testtesttesttesttest                                                               ...

我期待如下:

 testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttestte 
 testtesttest...

我试过一些修改没有成功。

最佳答案

你可以玩这样的东西

p.ellipsis {
position:relative;
line-height:1em;
max-height:2em;      /* 2 times the line-height to show 2 lines */
overflow: hidden;
}
p.ellipsis::after {
content:"...";
font-weight:bold;
position:absolute;
top:1em;
right:0;
padding:0 20px 1px 10px;
background: white;
}

参见 fiddle :http://jsfiddle.net/T7B9c/

或者你可以使用 clamp.js

编辑:要计算是否没有溢出,您可以这样做:

<p id="ellipsis">lots of text</p>

var $element = $('#ellipsis');
if( $element[0].offsetHeight < $element[0].scrollHeight || $element[0].offsetWidth < $element[0].scrollWidth){
   // your element have overflow
   $element.addClass('ellipsis');
}
else{
  $element.removeClass('ellipsis');
}

然后它只会在元素有未显示的内容时显示点。

关于javascript - 在 div 中将文本换行在两行内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16433127/

相关文章:

javascript - 正常表单提交正确但ajax表单提交为空

javascript - FF mouseleave/mouseenter 事件

javascript - 如果在 css 中以百分比设置,我如何检索以像素为单位的 div 的最高值?

javascript - Express Node 如何避免在每次请求时发送用户数据?

javascript - 这些 jQuery 插件有 Google 托管版本吗?

javascript - 如何使用无点递归实现使用 Ramda 删除对象中的空值?

jquery - 如何使用 css 属性动态定位 html 表格?

html - 伪类之后的 ">"是什么意思 ( :first-child) do in CSS?

css - 在 "Internet Explorer"中加载图像 - 服务器的参数是 "????"

jquery - 是否可以使用不同的 <div> 标签提供不同的背景图片?