Skip to content

Instantly share code, notes, and snippets.

@colynb
Created July 9, 2017 20:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save colynb/8214463fe0015bb66bd7d7f6228ddc6c to your computer and use it in GitHub Desktop.
Save colynb/8214463fe0015bb66bd7d7f6228ddc6c to your computer and use it in GitHub Desktop.
Star Rating
<h1>Pure CSS Star Rating Widget</h1>
<fieldset class="rating">
<input type="radio" id="star5" name="rating" value="5" /><label class = "full" for="star5" title="Awesome - 5 stars"></label>
<input type="radio" id="star4half" name="rating" value="4 and a half" /><label class="half" for="star4half" title="Pretty good - 4.5 stars"></label>
<input type="radio" id="star4" name="rating" value="4" /><label class = "full" for="star4" title="Pretty good - 4 stars"></label>
<input type="radio" id="star3half" name="rating" value="3 and a half" /><label class="half" for="star3half" title="Meh - 3.5 stars"></label>
<input type="radio" id="star3" name="rating" value="3" /><label class = "full" for="star3" title="Meh - 3 stars"></label>
<input type="radio" id="star2half" name="rating" value="2 and a half" /><label class="half" for="star2half" title="Kinda bad - 2.5 stars"></label>
<input type="radio" id="star2" name="rating" value="2" /><label class = "full" for="star2" title="Kinda bad - 2 stars"></label>
<input type="radio" id="star1half" name="rating" value="1 and a half" /><label class="half" for="star1half" title="Meh - 1.5 stars"></label>
<input type="radio" id="star1" name="rating" value="1" /><label class = "full" for="star1" title="Sucks big time - 1 star"></label>
<input type="radio" id="starhalf" name="rating" value="half" /><label class="half" for="starhalf" title="Sucks big time - 0.5 stars"></label>
</fieldset>
@import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css)
fieldset, label
margin: 0
padding: 0
body
margin: 20px
h1
font-size: 1.5em
margin: 10px
.rating
border: none
float: left
.rating > input
display: none
.rating > label:before
margin: 5px
font-size: 1.25em
font-family: FontAwesome
display: inline-block
content: "\f005"
.rating > .half:before
content: "\f089"
position: absolute
.rating > label
color: #eee
float: right
cursor: pointer
.rating > input:checked ~ label,
.rating:not(:checked) > label:hover,
.rating:not(:checked) > label:hover ~ label
color: rgb(255, 203, 69)
.rating > input:checked + label:hover,
.rating > input:checked ~ label:hover,
.rating > label:hover ~ input:checked ~ label,
.rating > input:checked ~ label:hover ~ label
color: rgb(255, 203, 69)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment