我正在尝试创建淡出效果,以便标题栏中的最后 5 或 6 个字符在接近容器边缘时逐渐变得更加透明。
我不能基于字符数,因为页面是响应式的并且可以是任何宽度。我也不能只在它上面叠加一个渐变,因为背景上已经有一个渐变,这会使这一点变得明显,除非我可以将我的 CSS 从透明渐变为一种颜色,我认为这是不可能的。
我希望我能以某种方式选择最接近截止点的字符(在它们被父元素上的溢出隐藏之前),如下所示:
我试图通过 ":last" 选择器来做到这一点,但只能定位标签:
$('#scalable:visible:last').css('opacity','.5');
这是我在 jsfiddle 中的第一次尝试:http: //jsfiddle.net/adamnelson/PgerN/
修复是纯 css:
#scalable {
background: #408800; /* Old browsers */
background: -webkit-gradient(linear, 0 0, 0 100%, from(#408800), to(#316600));
background: -webkit-linear-gradient(#408800 0%, #316600 100%);
background: -moz-linear-gradient(#408800 0%, #316600 100%);
background: -o-linear-gradient(#408800 0%, #316600 100%);
background: linear-gradient(#408800 0%, #316600 100%); /* FF3.6+ */ /* Chrome,Safari4+ */ /* Chrome10+,Safari5.1+ */ /* Opera 11.10+ */ /* IE10+ */ /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#408800', endColorstr='#316600',GradientType=0 ); /* IE6-9 */
color: white;
font-size: 20px;
font-weight: bold;
margin: 50px auto 0;
padding: 1em;
overflow: hidden;
width: 80%;
position: relative;
}
#scalable:after {
content: " ";
position: absolute;
height: 100%;
width: 140px;
top: 0;
right: 0;
background: -moz-linear-gradient(left, rgba(49,102,0,0) 0%, rgba(49,102,0,0.56) 51%, rgba(49,102,0,1) 100%);
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(49,102,0,0)), color-stop(51%,rgba(49,102,0,0.56)), color-stop(100%,rgba(49,102,0,1)));
background: -webkit-linear-gradient(left, rgba(49,102,0,0) 0%,rgba(49,102,0,0.56) 51%,rgba(49,102,0,1) 100%);
background: -o-linear-gradient(left, rgba(49,102,0,0) 0%,rgba(49,102,0,0.56) 51%,rgba(49,102,0,1) 100%);
background: -ms-linear-gradient(left, rgba(49,102,0,0) 0%,rgba(49,102,0,0.56) 51%,rgba(49,102,0,1) 100%);
background: linear-gradient(to right, rgba(49,102,0,0) 0%,rgba(49,102,0,0.56) 51%,rgba(49,102,0,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00408800', endColorstr='#408800',GradientType=1 );
}
记录在这个小提琴中:http: //jsfiddle.net/PgerN/2/