最近作项目作到一个五星评分的,这个分数的显示,要精确到小数,就是若是分数是4.3分,就显示4.3颗星星,这个看上去好像挺难的,可是作起来很简单。css
首先咱们整理一下思路,这效果要怎么作出来,由于这个分数的缘由,很容易让人联想到进度条,因此就想到了用遮罩来出来。作法很简单,灰色星星的图片放在下面,而后亮色星星的图片在上面,重叠两张图片,任何控制上面亮色的星星图片,根据分数显示它的长度,这样便能实现这个效果了。废话很少说,直接把代码贴上。html
<html> <head> <meta charset="utf-8"> <style type="text/css"> #bg{ width: 60px; height: 16px; background: url("img/star_gray.png"); } #over{ height:16px; background:url("img/star_org.png") no-repeat; } </style> </head> <body> <div id="bg"><!--这里是背景,也就是灰色的星星--> <!--说明,这里的width就是设置分数啦,以我写的为例,一个星星的长度是12px,也就是1分12px,若是是4.3分,就是4.3*12px = 51.6px的长度,固然这个通常是取得数据后用js或者其余模板语言去控制的--> <div id="over" style="width:51.6px"></div><!--这里是遮罩,设置宽度以达到评分的效果--> </div> </body> </html>
想要看五星打分的效果实现,看个人下一篇博客。url
PS:这是五星显示和打分的源文件以及图片素材http://pan.baidu.com/s/1c0ruT3qspa
Author:立礼
Sign:人生不要有太多的幻想,而要有更多的行动。
code