/* Shim */
.text-overflow-block:before{
    float: right;
    height: 100%;
}

/* Text node */
.text-overflow_text,
.text-overflow-block > *:first-child{
    float: left;
    margin-left: 0;
    margin-right: -5px;
}  

/* Ellipsis node */
.text-overflow_end,
.text-overflow-block:after{
    float: left;
    right: 100%;
    margin-left: 0;
    margin-right: -3em;
    padding-right: 0;
    padding-left: 5px;
    text-align: left;
    
    background: -webkit-gradient(linear, left top, right top,
            from(white), to(rgba(255, 255, 255, 0)), color-stop(50%, white));
    background: -moz-linear-gradient(to left, rgba(255, 255, 255, 0), white 50%, white);           
    background: -o-linear-gradient(to left, rgba(255, 255, 255, 0), white 50%, white);
    background: -ms-linear-gradient(to left, rgba(255, 255, 255, 0), white 50%, white);
    background: linear-gradient(to left, rgba(255, 255, 255, 0), white 50%, white);
    /*-ms-filter: progid:DXImageTransform.Microsoft.gradient(
        gradientType=1, startColor=#FFFFFF, endColoStr=0
    );*/
}