rate.less 2.48 KB
@rate-prefix-cls: ~"@{css-prefix}rate";

.@{rate-prefix-cls} {
    display: inline-block;
    margin: 0;
    padding: 0;
    font-size: 20px;
    vertical-align: middle;
    font-weight: normal;
    font-style: normal;

    &-disabled &-star {
        &:before,
        &-content:before {
            cursor: default;
        }
        &:hover {
            transform: scale(1);
        }
    }

    &-star-full, &-star-zero {
        position: relative;
    }
    &-star-first {
        position: absolute;
        left: 0;
        top: 0;
        width: 50%;
        height: 100%;
        overflow: hidden;
        opacity: 0;
    }

    &-star-first, &-star-second {
        user-select: none;
        transition: all .3s ease;
        color: #e9e9e9;
        cursor: pointer;
    }

    &-star-chart {
        display: inline-block;
        margin: 0;
        padding: 0;
        margin-right: 8px;
        position: relative;
        font-family: 'Ionicons';
        transition: all 0.3s ease;

        &:hover {
            transform: scale(1.1);

            &-star-first, &-star-second {
                color: @rate-star-color;
            }
        }
    }
    &-star-chart&-star-full &-star-first, &-star-chart&-star-full &-star-second{
        color: @rate-star-color;
    }
    &-star-chart&-star-half &-star-first{
        opacity: 1;
        color: @rate-star-color;
    }
    
    &-star {
        display: inline-block;
        margin: 0;
        padding: 0;
        margin-right: 8px;
        position: relative;
        font-family: 'Ionicons';
        transition: all 0.3s ease;

        &:hover {
            transform: scale(1.1);
        }

        &:before,
        &-content:before {
            color: #e9e9e9;
            cursor: pointer;
            content: "\F2BF";
            transition: all @transition-time @ease-in-out;
            display: block;
        }

        &-content {
            position: absolute;
            left: 0;
            top: 0;
            width: 50%;
            height: 100%;
            overflow: hidden;
            &:before {
                color: transparent;
            }
        }

        &-half &-content:before,
        &-full:before {
            color: @rate-star-color;
        }

        &-half:hover &-content:before,
        &-full:hover:before {
            color: tint(@rate-star-color, 20%);
        }
    }
    &-text {
        margin-left: 8px;
        vertical-align: middle;
        display: inline-block;
        font-size: @font-size-small;
    }
}