CSSで評価★星を作る
目次
星をクリックして評価を送信する仕組み
HTML
labelタグなのでsubmitするだけでデータを送信できます。
<form type="get" action="">
<div class="hyouka">
<input id="hoshi1" type="radio" name="hoshi" value="5" />
<label for="hoshi1">★</label>
<input id="hoshi2" type="radio" name="hoshi" value="4" />
<label for="hoshi2">★</label>
<input id="hoshi3" type="radio" name="hoshi" value="3" />
<label for="hoshi3">★</label>
<input id="hoshi4" type="radio" name="hoshi" value="2" />
<label for="hoshi4">★</label>
<input id="hoshi5" type="radio" name="hoshi" value="1" />
<label for="hoshi5">★</label>
</div>
</form>
スポンサードリンク
CSS
ラジオボタンの仕組みをつかってdisplay: noneで消しているだけです。 flex-direction: row-reverse;で逆さにして利用しています。 逆さだと右と左も逆になってしまうのでjustify-content: right;で左にしてます。
.hyouka{
display: -ms-flex;
display: -webkit-flex;
display: -moz-flex;
display: -o-flex;
display: flex;
flex-direction: -ms-row-reverse;
flex-direction: -webkit-row-reverse;
flex-direction: -moz-row-reverse;
flex-direction: -o-row-reverse;
flex-direction: row-reverse;
justify-content: -ms-right;
justify-content: -webkit-right;
justify-content: -moz-right;
justify-content: -o-right;
justify-content: right;
}
.hyouka input[type='radio']{
display: none;
}
.hyouka input[type='radio']{
display: none;
}
.hyouka label{
position: relative;
padding: 10px 0px 20px 0px;
color: #bbb;
cursor: pointer;
font-size: 30px;
}
.hyouka label:hover,
.hyouka label:hover ~ label,
.hyouka input[type='radio']:checked ~ label{
color: #faee2e;
}
結果
スポンサードリンク
コメントを書き込む