first-step: 直接用unicode 标记星星(编码utf-8,so easy)
1 | <div class="rating"> |
second-step: 给:hover添加伪元素,使得空心star变为实心
1 | .rating > span:hover:before{ |
third-step: 解决选择相邻同级元素的问题
css 不能直接选择之前的同级元素,可以选择之后的同级元素。
所以,这里我们把字符的顺序更改了,就可以使用同级元素了,选取on hover 元素之前的所有star了。1
2
3
4
5
6
7
8
9
10.rating {
unicode-bidi: bidi-override;
direction: rtl;
}
.rating > span:hover:before,
.rating > span:hover ~ span:before {
content: "\2605";
position: absolute;
color: gold;
}
summary
一般网站的打分功能需要与后台交互。
这个只是一个纯样式的,没有数据交互。
可以使用radio 表单元素设计可以真正交互的star rating。