我正在使用以下代码来防止文本溢出到新行:
.info-box{
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
height: 3em;
width: 300px;
font-size: 1em;
line-height: 1em;
}
这正如预期的那样有效,但此框中有三行的空间。如果文本超出第三行,我如何命令浏览器应用省略号?或者文本溢出仅适用于一个?
如果我需要JS,我不会打扰。
答案 0 :(得分:5)
你可以用这样的伪造它。
在<span>...</span>
的开头添加div
。
<div class="info-box"><span>...</span>Lorem ipsum dolar etc.</div>
在你的CSS中
摆脱nowrap
和text-overflow
添加一些padding-right
将span
放在右下角。
<强> CSS 强>
.info-box{
overflow:hidden;
height: 3em;
width: 300px;
font-size: 1em;
line-height: 1em;
padding-right:20px;
}
.info-box span{
position:relative;
top:31px;
left:297px;
display:inline-block;
}
工作示例: http://jsfiddle.net/jasongennaro/UeCsk/
fyi ...左上角会有一个小间隙,省略号应该是(因为我们使用的是position:relative;
。
fyi 2 ...只要您调整top
和left
,这应该适用于您想要的许多行(您在问题中提到了三行)。
答案 1 :(得分:0)
我知道这是一个老问题,但我发现了这个问题,它对我来说很好。
https://codepen.io/martinwolf/pen/qlFdp
@import "compass/css3";
/* Martin Wolf CodePen Standard */
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600,700);
* {
margin: 0;
padding: 0;
@include box-sizing(border-box);
}
body {
padding: 3em 2em;
font-family: 'Open Sans', Arial, sans-serif;
color: #cf6824;
background: #f7f5eb;
}
/* END Martin Wolf CodePen Standard */
$font-size: 26px;
$line-height: 1.4;
$lines-to-show: 3;
h2 {
display: block; /* Fallback for non-webkit */
display: -webkit-box;
max-width: 400px;
height: $font-size*$line-height*$lines-to-show; /* Fallback for non-webkit */
margin: 0 auto;
font-size: $font-size;
line-height: $line-height;
-webkit-line-clamp: $lines-to-show;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}