我有这个想法来淡出任何文本字符串的最后一个限制字符。
例子 :
可能吗?有谁知道,如何使用jquery
/创建这个CSS3
?
我强烈建议为此使用 CSS——text-overflow:ellipsis
这是做这种事情的标准方式。
回到 Firefox 还在 3.6 版的那一天,它不支持ellipsis
.,我不得不想出一个替代解决方案。我当时的解决方案正是你在这里所建议的,在行尾淡出。
我通过在相关元素的顶部放置一个附加元素来实现它,该元素具有从透明渐变为纯色的渐变背景,以匹配文本的背景。这个渐变可以使用 CSS 来实现,但是由于我需要支持旧版本的 IE(而且当时还没有 CSS3Pie),所以我实际上使用了 PNG 图像来代替渐变效果。不过,无论哪种方式都有相同的区别。
这样做的好处是它可以工作,并为我们提供了一个好看的文本淡出效果。
缺点是(1)它给用户选择文本带来了问题,(2)如果你的背景不是简单的纯色,它看起来很糟糕,以及(3)它增加了额外的工作,当ellipsis
解决方案非常简单时.
恐怕我无法向您展示任何代码,因为一旦大多数 Firefox 用户升级到支持ellipsis
.
您可以通过 jQuery 添加text-overflow: ellipsis
到您的元素并附加一个<span>
透明渐变背景 - DEMO
p {
text-overflow: ellipsis;
width: 140px;
overflow: hidden;
white-space: nowrap;
margin: 25px 0;
}
span {
display: inline-block;
height: 20px;
width: 50px;
background: red;
position: absolute;
left: 85px;
background: -moz-linear-gradient(right, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, right top, left top, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, rgba(255,255,255,0),rgba(255,255,255,1)); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, rgba(255,255,255,1) 100%,rgba(255,255,255,0) 0%); /* Opera 11.10+ */
background: -ms-linear-gradient(left, rgba(255,255,255,1) 100%,rgba(255,255,255,0) 0%); /* IE10+ */
background: linear-gradient(to right, rgba(255,255,255,1) 100%,rgba(255,255,255,0) 0%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1 ); /* IE6-9 */
}
我想不出更好的方法:
<span>test test test test</span><span style="opacity: 0.50; "> fading.</span><span style="opacity: 0.40; ">.</span><span style="opacity: 0.20; ">.</span><span style="opacity: 0.10; ">.</span>
jsfiddle:http: //jsfiddle.net/DLbBZ/
这是一个 jQuery 解决方法,尽管您已经有了答案:P
您可以尝试 CSS3text-overflow
属性:
.test {
text-overflow: ellipsis;
}