css 解决多行文字截断问题

节点内容包括 文字 + >,当节点高度超出2行时,文字内容被截断,但箭头还展示。如下图:

This is long long hotel name.This is long long hotel
name.This is long long hotel name. Thi is This ... >

请教大家,如何用css解决,多谢

斜体文字

阅读 6.1k
4 个回答

多行文本超出隐藏

 overflow:hidden;
 text-overflow:ellipsis;
 display:-webkit-box;
 -webkit-line-clamp:2;//想要的行数
 -webkit-box-orient:vertical;

不用js怕是做不出+>箭头这种效果

<div style="width:100%;position:relative;">
<div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;margin-right:30px;">long words</div>
<i style="position:absolute;right:0;top:0;color:green;font-weight:bold;cursor:pointer;">小图标</i>
</div>

webkit内核的浏览器

overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;

兼容其他内核的

p {
    position:relative;
    line-height:1.4em;
    /* 高度=2倍的行高 */
    height:2.8em;
    overflow:hidden;
}
p::after {
    content:"...";
    font-weight:bold;
    position:absolute;
    bottom:0;
    right:0;
    padding:0 20px 1px 45px;
}

如果要箭头或者比较好的效果,建议使用js 截断插件

https://github.com/josephschm...

https://github.com/BeSite/jQu...

一点思路
首先文本超出隐藏是一部分,楼上已经说的很明确了

其次,关于向右的箭头,可以用伪元素 after before这些解决,就是默认给文本容器 padding-right 然后伪元素 content = 》 让它浮动,它的高度始终是一行高度,即 line-height 与父容器一直,居右居下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题