html
html
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Star Rating</title>
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/ionicons/4.5.6/css/ionicons.min.css'>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="rating">
<input type="radio" name="rating" id="5" value="5" />
<label for="5"><i class="icon ion-md-star-outline"></i></label>
<input type="radio" name="rating" id="4" value="4" />
<label for="4"><i class="icon ion-md-star-outline"></i></label>
<input type="radio" name="rating" id="3" value="3" />
<label for="3"><i class="icon ion-md-star-outline"></i></label>
<input type="radio" name="rating" id="2" value="2" />
<label for="2"><i class="icon ion-md-star-outline"></i></label>
<input type="radio" name="rating" id="1" value="1" />
<label for="1"><i class="icon ion-md-star-outline"></i></label>
</div>
</body>
</html>
css
css
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background: #222;
}
.rating {
display: flex;
flex-direction: row-reverse;
font-family: "Ionicons";
}
.rating input {
opacity: 0;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.rating input:checked ~ label::before {
opacity: 1;
}
.rating label {
position: relative;
margin-right: 6px;
font-size: 5em;
color: gold;
cursor: pointer;
transition: 0.5s;
}
.rating label:hover {
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
.rating label::before {
position: absolute;
content: "\f384";
opacity: 0;
transition: 0.5s;
}
.rating label:hover::before, .rating label:hover ~ label::before {
opacity: 1 !important;
}
.rating:hover input:checked ~ label::before {
opacity: 0;
}