答案 0 :(得分:1)
这个问题有两种方法,第一种是使用简单的淡出(淡出比掩蔽更容易,因为有效的掩蔽'涉及知道给定元素的显式字体大小为渲染),为此我建议使用伪元素,::after
:
.container {
width: 100px;
height: 98px;
overflow: hidden;
border: 1px solid red;
position: relative;
}
.container::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
box-shadow: 0 0 10px 7px #fff;
}

<div class="container">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim</p>
</div>
&#13;
这可以通过在框的底部添加一个伪元素,在整个宽度上添加一个伪元素,并使用位于元素顶部的box-shadow
box-shadow
提供淡化效果。数字(10px
和7px
)在某种程度上是随意的,但它通常是预期的用户界面,它并不精确。&#39;
另一种方法是使用JavaScript(您在评论中说,您无法更改元素的高度)将文本的line-height
设置为一个值导致部分隐藏&#39;要完全隐藏的文本行。一个天真的方法,就是使用一个函数将元素的高度除以你希望在该元素中出现的行数,将该数字置于楼层,然后设置元素的line-height
(通过style
属性)到那个高度:
function showOnlyCompleteLines(elem, lines) {
var computed = window.getComputedStyle(elem, null),
height = parseFloat(computed.height),
fontSize = parseFloat(computed.fontSize),
lineHeight = Math.floor(height / 6);
elem.style.lineHeight = lineHeight + 'px';
}
showOnlyCompleteLines(document.querySelector('div.container'));
&#13;
.container {
width: 100px;
height: 98px;
overflow: hidden;
border: 1px solid red;
position: relative;
}
.container p {
margin: 0;
}
&#13;
<div class="container">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim</p>
</div>
&#13;
这种方法的缺点是,当然,您必须手动声明可见线的数量,这些线可能适合或可能不适合用户的屏幕。
参考文献:
答案 1 :(得分:0)
您需要调整容器的高度以补偿这一点。否则你会看到。
<强> Soultion 强>
最好的方法是使用JavaScript来计算字符并隐藏任何内容。
答案 2 :(得分:0)
将overflow
height
等添加到p
元素http://jsfiddle.net/shafips/0pgy7o5d/
p{
width:100px;
height:180px;
overflow:hidden;
border:1px solid red;
}