Rating:
CSS:
.starRating:not(old){ display : inline-block; width : 7.5em; height : 1.5em; overflow : hidden; vertical-align : bottom; } .starRating:not(old) > input{ margin-right : -100%; opacity : 0; } .starRating:not(old) > label{ display : block; float : right; position : relative; background : url('star-off.png'); background-size : contain; } .starRating:not(old) > label:before{ content : ''; display : block; width : 1.5em; height : 1.5em; background : url('star-on.png'); background-size : contain; opacity : 0; transition : opacity 0.2s linear; } .starRating:not(old) > label:hover:before, .starRating:not(old) > label:hover ~ label:before, .starRating:not(:hover) > :checked ~ label:before{ opacity : 1; }Note: Make sure that two images 'star-off.png' and 'star-on.png' are existing, which you are using in CSS .