如何使用CSS绘制星级评分效果的方法

荣誉就像河流:轻浮的和空虚的荣誉浮在河面上,沉重的和厚实的荣誉沉在河底里。雨会停,心会晴,没有什么会永远糟糕透顶。

先来看一下CSS绘制五角星的基本方法:

CSS Code复制内容到剪贴板
  1. #star-five{
  2. margin:50px0;
  3. position:relative;
  4. display:block;
  5. color:red;
  6. width:0px;
  7. height:0px;
  8. border-right:100pxsolidtransparent;
  9. border-bottom:70pxsolidred;
  10. border-left:100pxsolidtransparent;
  11. -moz-transform:rotate(35deg);
  12. -webkit-transform:rotate(35deg);
  13. -ms-transform:rotate(35deg);
  14. -o-transform:rotate(35deg);
  15. }
  16. #star-five:before{
  17. border-bottom:80pxsolidred;
  18. border-left:30pxsolidtransparent;
  19. border-right:30pxsolidtransparent;
  20. position:absolute;
  21. height:0;
  22. width:0;
  23. top:-45px;
  24. left:-65px;
  25. display:block;
  26. content:"";
  27. -webkit-transform:rotate(-35deg);
  28. -moz-transform:rotate(-35deg);
  29. -ms-transform:rotate(-35deg);
  30. -o-transform:rotate(-35deg);
  31. }
  32. #star-five:after{
  33. position:absolute;
  34. display:block;
  35. color:red;
  36. top:3px;
  37. left:-105px;
  38. width:0px;
  39. height:0px;
  40. border-right:100pxsolidtransparent;
  41. border-bottom:70pxsolidred;
  42. border-left:100pxsolidtransparent;
  43. -webkit-transform:rotate(-70deg);
  44. -moz-transform:rotate(-70deg);
  45. -ms-transform:rotate(-70deg);
  46. -o-transform:rotate(-70deg);
  47. content:"";
  48. }

有了这个基础,基本上星级评分的效果就容易实现了:
下图是Demo中会用到的图,可右键另存

HTML Code


XML/HTML Code复制内容到剪贴板
  1. <ulclass="ratingnostar">
  2. <liclass="one"><arel="nofollow noopener noreferrer" href="#"title="1Star">1</a>
  3. </li>
  4. <liclass="two"><arel="nofollow noopener noreferrer" href="#"title="2Stars">2</a>
  5. </li>
  6. <liclass="three"><arel="nofollow noopener noreferrer" href="#"title="3Stars">3</a>
  7. </li>
  8. <liclass="four"><arel="nofollow noopener noreferrer" href="#"title="4Stars">4</a>
  9. </li>
  10. <liclass="five"><arel="nofollow noopener noreferrer" href="#"title="5Stars">5</a>
  11. </li>
  12. </ul>

CSS Code


CSS Code复制内容到剪贴板
  1. .rating{
  2. width:124px;
  3. height:19px;
  4. margin:0020px0;
  5. padding:0;
  6. list-style:none;
  7. clear:both;
  8. position:relative;
  9. background:url(http://www.zjgsq.com/wp-content/uploads/2014/09/stars.png)no-repeat00;
  10. }
  11. .nostar{
  12. background-position:00
  13. }
  14. .onestar{
  15. background-position:0-19px
  16. }
  17. .twostar{
  18. background-position:0-38px
  19. }
  20. .threestar{
  21. background-position:0-57px
  22. }
  23. .fourstar{
  24. background-position:0-76px
  25. }
  26. .fivestar{
  27. background-position:0-95px
  28. }
  29. ul.ratingli{
  30. cursor:pointer;
  31. float:left;
  32. text-indent:-999em;
  33. }
  34. ul.ratinglia{
  35. position:absolute;
  36. left:0;
  37. top:0;
  38. width:25px;
  39. height:19px;
  40. text-decoration:none;
  41. z-index:200;
  42. }
  43. ul.ratingli.onea{
  44. left:0
  45. }
  46. ul.ratingli.twoa{
  47. left:25px;
  48. }
  49. ul.ratingli.threea{
  50. left:50px;
  51. }
  52. ul.ratingli.foura{
  53. left:75px;
  54. }
  55. ul.ratingli.fivea{
  56. left:100px;
  57. }
  58. ul.ratinglia:hover{
  59. z-index:2;
  60. width:125px;
  61. height:19px;
  62. overflow:hidden;
  63. left:0;
  64. background:url(http://www.zjgsq.com/wp-content/uploads/2014/09/stars.png)no-repeat00
  65. }
  66. ul.ratingli.onea:hover{
  67. background-position:0-19px;
  68. }
  69. ul.ratingli.twoa:hover{
  70. background-position:0-38px;
  71. }
  72. ul.ratingli.threea:hover{
  73. background-position:0-57px
  74. }
  75. ul.ratingli.foura:hover{
  76. background-position:0-76px
  77. }
  78. ul.ratingli.fivea:hover{
  79. background-position:0-95px
  80. }

这样就基本实现了鼠标hover显示对应的星级,后面再增加点JS来实现click效果就可以啦

Demo

到此这篇关于如何使用CSS绘制星级评分效果的方法就介绍到这了。抱抱你,大姑娘,这些年年走过来有多不容易,你要坚强要加油地走下去,人难得世间走一遭想要的就努力争取想做的就大胆尝试,愿你此生不乏追逐的勇气与希望,愿你今世爱你所爱恨你所恨,总之,勇气,希望,好奇,敬畏,一生随心所欲!更多相关如何使用CSS绘制星级评分效果的方法内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
css让页脚保持在底部位置的四种方案

CSS如何使用Flex和Grid布局如何实现3D骰子

Flex布局史上最简单使用语法教程

新的CSS 伪类函数 :is() 和 :where()示例详解

纯CSS打字动画的如何实现示例