4

我有一个小问题。我想出了一种使用跨浏览器多行省略号的方法。这是我的less css mixin。如您所见,此版本在 webkit 中完美运行,并且在所有其他浏览器中“ok”。

.ellipsis-multi(@lh, @l, @mw) {
  /* non-webkit */
  max-height: @lh*@l;
  /* webkit */
  -webkit-box-orient: vertical;
  -webkit-line-clamp: @l;
  display: -webkit-box;
  line-height: @lh;
  max-width: @mw;
  overflow: hidden;
  text-overflow: ellipsis;
}
.excerpt {      
  &.hide {
    .ellipsis-multi(1.4em, 3, 100%)
  }
}

我的问题是,我使用阅读更多链接来添加和删除“隐藏”类。这很完美,但如果摘录 div 只有 2 行文本,链接也是可见的。如果需要省略号,我需要一种方法来显示链接。

这是一个 codepen 示例 http://codepen.io/janwagner/pen/ubHef

我更喜欢仅使用 css 的方法来解决此问题:)

多谢!!!

4

1 回答 1

1

仅使用 CSS 是无法做到这一点的。但是,您可以使用以下函数来计算您拥有的行数:

var divHeight = $('.excerpt p').height();
var x = ('.excerpt p').css('line-height');
lineHeight = parseInt(x); // Returns clean line-height
var lines = divHeight / lineHeight; // Returns number of lines

然后简单地使用 if 语句来显示或隐藏阅读更多按钮,具体取决于段落的行数。像这样的东西:

if(lines > 4){
$('.readmore').show;
}else{
$('.readmore').hide;
}
于 2013-03-22T16:27:38.050 回答