当您将光标移到带有消息的框上时,我真的很喜欢 twitter 如何模糊长名称的结尾。
我想尝试做一些类似的东西,但有一点不同——我有一个 DIV(比如说width: 100px;),当里面的文本长于 100px 时——那么各个文本的结尾就会模糊...
谁能给我一些例子/来源/建议,该怎么做?
谢谢
使用以下 HTML:
<div>
<span>@someUserName</span>
</div>
和 CSS:
span {
display: inline-block;
position: relative;
}
span::after {
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 3em;
content: '';
background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* IE10+ */
background: linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1 ); /* IE6-9 */
}
当然,您也可以在生成的内容中使用百分比宽度:JS Fiddle proof of concept。
针对下面的评论进行编辑,报告 IE 8(可能更低)不适用于上述解决方案:
虽然在 IE8 中不适合我...
我已将 HTML 更新为以下内容:
<div>
<span>@someUserName
<!--[if ie]>
<span class="ieFadeout"></span>
<![endif]-->
</span>
</div>
并更新了 CSS:
div > span {
display: inline-block;
position: relative;
}
div > span::after {
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 3em;
content: '';
background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* IE10+ */
background: linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1 ); /* IE6-9 */
}
span > .ieFadeout {
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 3em;
background-color: transparent;
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1 ); /* IE6-9 */
}
JS Fiddle 演示,在 Win XP/IE 8 和 Chrome 18(如前)中工作。
参考:
你将另一个 DIV 放在它上面,并给它一个半透明的 PNG 背景,它从完全透明渐变为完全白色。就像是:
<div style="position: relative; width: 100px">
@GuyKawasaki
<div style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; background-image:url(overlay.png)"></div>
</div>