我知道这可以通过Javascript实现,因为我自己也做过。但是,随着我构建的平台变得越来越大,我想尽可能多地使用JS重载。此外,在这个时间点,我认为使用CSS文本溢出属性更加可行,因为FireFox现在也支持它。
无论如何,阅读text-overflow reference page on MDN,我对第三个参数定义为“string”感到好奇。我不知道这是否引用“text-overflow属性接受字符串值”,或者它是否是一个参数(就像剪辑和省略号一样)。
基本上,我只想知道这个字符串参数是否允许我生成自定义文本溢出输出,例如" .."
。我尝试过这样的事情:
text-overflow: string(" ..");
text-overflow: " ..";
text-overflow: ellipsis-" ..";
答案 0 :(得分:18)
根据MDN文档底部的Compatibility Table,似乎只有Firefox 9+支持text-overflow
的字符串值。
所以,你在这个问题上大部分都不走运。
答案 1 :(得分:1)
Mozilla已经开始提出这种语法,它已经在2012年初的UI level 3 spec LC草案中出现了:
text-overflow: ' ..';
或者,如果您打算将..
附加到现有省略号:
text-overflow: '... ..';
但是,除了Mozilla's own之外,还没有其他已知的实现,因此这种语法有可能从规范的后续版本中删除。
答案 2 :(得分:0)
基于-webkit-line-clamp的纯css方法,您可以像老板一样自定义textoverflow css:
@-webkit-keyframes ellipsis {/*for test*/
0% { width: 622px }
50% { width: 311px }
100% { width: 622px }
}
.ellipsis {
max-height: 40px;/* h*n */
overflow: hidden;
background: #eee;
-webkit-animation: ellipsis ease 5s infinite;/*for test*/
/**
overflow: visible;
/**/
}
.ellipsis .content {
position: relative;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-pack: center;
font-size: 50px;/* w */
line-height: 20px;/* line-height h */
color: transparent;
-webkit-line-clamp: 2;/* max row number n */
vertical-align: top;
}
.ellipsis .text {
display: inline;
vertical-align: top;
font-size: 14px;
color: #000;
}
.ellipsis .overlay {
position: absolute;
top: 0;
left: 50%;
width: 100%;
height: 100%;
overflow: hidden;
/**
overflow: visible;
left: 0;
background: rgba(0,0,0,.5);
/**/
}
.ellipsis .overlay:before {
content: "";
display: block;
float: left;
width: 50%;
height: 100%;
/**
background: lightgreen;
/**/
}
.ellipsis .placeholder {
float: left;
width: 50%;
height: 40px;/* h*n */
/**
background: lightblue;
/**/
}
.ellipsis .more {
position: relative;
top: -20px;/* -h */
left: -50px;/* -w */
float: left;
color: #000;
width: 50px;/* width of the .more w */
height: 20px;/* h */
font-size: 14px;
/**
top: 0;
left: 0;
background: orange;
/**/
}
<div class='ellipsis'>
<div class='content'>
<div class='text'>text text text text text text text text text text text text text text text text text text text text text </div>
<div class='overlay'>
<div class='placeholder'></div>
<div class='more'>...more</div>
</div>
</div>
</div>