css简单实现五角星评分、点赞收藏、展示评分(半颗星、1/3颗星)

摘要:
以前,我一直主张写简单的博客。我还写了三个简单的博客,分别是五星评级、点赞收藏和显示评级。然而,博客公园需要博客空间,所以我的三个博客没有出现在博客公园的主页上。但我认为这种方法应该让更多的小伙伴知道,所以我今天做了一个总结,希望在博客公园的主页上展示它。

本文原创作者为:by 苏小苏   https://www.cnblogs.com/sxs161028/,关于本文任何观点,权力,归原作者所有

1.前言

之前做的好几个项目中,都会遇到打分,评分,点赞这样的需求,写了很多次,每次需要再写的时候,就会翻出之前写过的代码,然后copy过来。总觉得这样的话没有进步,没有把知识放进脑袋里,所以,自己花了2个小时,把这三种类型的需求自己写了demo并做了演示,这样的话,感觉一字一字敲出来的代码,确实是到了脑袋里了。之前一直崇尚写简单的博客,也将五角星评分、点赞收藏、展示评分写成了三个简单的博客,奈何博客园要求博客要有篇幅,所以我的那三篇博客并没有上到博客园首页,但是我觉得这个方法应该让更多的小伙伴知道,所以今天做了一个总结,希望能在博客园首页展示。当然了,如果不想看长篇的,可以自行看简短版本:

  1. html超级简单实现点赞(收藏)和取消赞效果

  2. 简单实现大方接地气的五角星评分

  3. 进阶篇之纯css+字体实现五角星(半颗星)评分

2.详细讲解

使用方法:

使用unicode字符集,文档需要申明为UTF-8;

  1. 下面符号列表后面有两列编号,第一列是用于HTML的,用的时候在前面加上&#;
  2. 第二列用于css文件中,需要用来转义;也可以用于js中,和css用法一样,但要用u来转义;

注意事项:

 98%的字符都能在游览器下正常显示,实际操作中,要在各个浏览器下验证一下。每个浏览器显示的效果也有可能稍微有点区别。

 字符图集一览表:

css简单实现五角星评分、点赞收藏、展示评分(半颗星、1/3颗星)第1张

今天讲到的这几种效果都会用到这个字符集,无需引用:

2.1如何用html简单实现点赞收藏并取消收藏

2.1.1 css样式

.like{ font-size:66px;  color:#ccc; cursor:pointer;} /*原始样式*/
.cs{color:#f00;}/*点击后出现样式*/

2.1.2 html内容 

<p class="like">&#10084;</p>

2.1.3 js代码

复制代码
<script typet="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
    <script>
        $(function () {            
            $(".like").click(function () {
                $(this).toggleClass('cs');                
            })
        })
    </script>
复制代码

2.1.4 展示效果

css简单实现五角星评分、点赞收藏、展示评分(半颗星、1/3颗星)第4张

2.1.5 总结:css样式只有两行,第一行就是设置心形大小和颜色,第二行就是点击后心形的颜色。html一行代码就可以展示一个心形。js就是用来点击之后心形变由原始样式变成红色。是不是超简单实用。

2.2 简单大气实现五角星评分

2.2.1 css样式

.cleanfloat::after{display: block; clear: both; content:""; visibility: hidden; height: 0;}/*清浮动*/
 ul li{list-style:none; float:left; font-size:30px; margin:5px; color:#ccc; cursor:pointer;}/*五角星样式*/
.hs,.cs{color:#f00;}/*五角星点击后样式*/

2.2.2 html内容

复制代码
<ul class="cleanfloat">
2       <li>&#9733;</li>
3        <li>&#9733;</li>
4        <li>&#9733;</li>
5        <li>&#9733;</li>
6        <li>&#9733;</li>
7    </ul>
复制代码

2.2.3 js代码

复制代码
<script>
    $(function () {
        $("ul li").hover(function(){
            $(this).addClass('hs');
            $(this).prevAll().addClass('hs');
        },function(){
            $(this).removeClass('hs');
            $(this).prevAll().removeClass('hs');
        })

        $("ul li").click(function () {
            $(this).addClass('cs');
            $(this).prevAll().addClass('cs');
            $(this).nextAll().removeClass('cs');
        })
    })
</script>
复制代码

2.2.4 展示效果

css简单实现五角星评分、点赞收藏、展示评分(半颗星、1/3颗星)第9张

2.2.5 总结:如果你的项目中要做一个这样的打分效果,就不需要用图片然后计算距离这么麻烦了。这个直接拿去用,颜色样式,大小,都是可以随便控制的,非常的简单和实用。是不是呢。

2.3 css+字体实现五角星(半颗星、1/3颗星)评分效果

2.3.1 这个用到了 webFontIcon 字体,很抱歉我不会上传字体,会的童鞋可以教教我,大家可以自己去下载这个字体。

2.3.2 css样式

复制代码
       .cleanfloat::after{display: block; clear: both; content:""; visibility: hidden; height: 0;}
        *{margin:0; padding:0;}

        /*字体路径按照你的路径去修改*/
         @font-face {
            font-family: 'AlluraRegular';
            src: url('../common/webFontIcon/websymbols/fonts/websymbols-regular-webfont.eot'),
                 url('../common/webFontIcon/websymbols/fonts/websymbols-regular-webfont?#iefix') format('embedded-opentype'), 
                 url('../common/webFontIcon/websymbols/fonts/websymbols-regular-webfont.woff') format('woff'),
                 url('../common/webFontIcon/websymbols/fonts/websymbols-regular-webfont.ttf') format('truetype'),
                 url('../common/webFontIcon/websymbols/fonts/websymbols-regular-webfont.svg#AlluraRegular') format('svg');
        }
        .starFive span {display: block;float: left;font-size: 25px; font-family: 'AlluraRegular';
            text-align: center;color: #888; 27px;height: 33px;line-height: 33px;
            margin-right: 5px;position: relative;overflow: hidden;white-space: pre;
         }
        .starFive span:before {position: absolute;
            left: 0;top: 0;display: block; 50%;
            content: attr(data-content);overflow: hidden;color: #F63;
        }
        .sF1 span:before{ 70%;}
        .sF2 span:before{ 50%;}
        .sF3 span:before{ 40%;}
        .starFive .org_star {color: #F63;}
        .starFive b {font-weight: normal; line-height: 40px;
            font-size: 25px;color: #888;margin-left: 10px;
        }
复制代码

2.3.3 html内容

复制代码
<div>
      <p class='cleanfloat starFive sF1'><span class='org_star'>R</span><span class='org_star'>R</span><span class='org_star'>R</span><span class='org_star'>R</span><span data-content='R'>R</span><b>4.7分</b></p>
      <p class='cleanfloat starFive sF2'><span class='org_star'>R</span><span class='org_star'>R</span><span class='org_star'>R</span><span data-content='R'>R</span><span>R</span><b>3.5分</b></p>
      <p class='cleanfloat starFive sF3'><span class='org_star'>R</span><span class='org_star'>R</span><span data-content='R'>R</span><span>R</span><span>R</span><b>2.4分</b></p>
 </div>
复制代码

2.3.4 展示效果图

css简单实现五角星评分、点赞收藏、展示评分(半颗星、1/3颗星)第14张

2.3.5 总结:是不是很简单就实现了。实际操作中,大家就可以按照这个思路了,以后遇到这种效果都无需用图片再去拼接了。超级简单实用。

如果还是不会用,可以看这篇,拿来就能用的

3.本文总结

个人觉得这几种情况做前端的话还是会很大概率遇到的,我也希望这篇文章对你有帮助,能让你学到知识,也通过这个总结,让自己更深的领会到了学习的重要性!如果这篇文章对你有帮助,可以点个赞,感谢支持,如果觉得没有帮助到你或者写的不好,还请指教。

1. 随笔为作者自己经验以及学习的总结;欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
2. 如本文对您有帮助请移步右下角,推荐本文,谢谢大家的点赞,因为您的支持是我最大动力

免责声明:文章转载自《css简单实现五角星评分、点赞收藏、展示评分(半颗星、1/3颗星)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[Android Exception 1A] -com.android.volley.NoConnectionError: java.io.InterruptedIOExceptionLeetCode 36——有效的数独下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

前端代码编写规范

前端代码编写规范   规范的目的 前端编程人员书写前端代码遵循一定的规范。按照规范编写代码可以使代码具有统一的风格,既可以提高团队协作效率,规范文件管理,可以减小一些错误风险,也有利于项目的代码维护和后期扩展。 规范的内容 前端代码主要包括html、css和JavaScript代码,分别负责页面的结构、表现和行为,严格保证三者的分离,尽量让三者没有太多的交...

webpack4.x抽取css【extract-text-webpack-plugin与mini-css-extract-plugin】

参考文档:https://www.npmjs.com/package/extract-text-webpack-pluginhttps://www.npmjs.com/package/mini-css-extract-plugin 项目的初始诉求是利用webpack来管理css(合并),并增加hash(性能优化),当前项目使用webpack版本为4.6.0...

网页重构面试笔试题

1.什么是网站重构?div+css的布局较table布局有什么优点?2.如何理解css盒模型?3.平时做网页经常使用哪些hack?4.如何理解表现与内容相分离?5.如何解决ie6的双边距问题?6.如何定义高度为1px的容器?{heigh:1px; 10px; background:#000; overflow:hidden}ie6下这个问题是默认行高造成的,...

CSS 外边距

CSS 外边距围绕在元素边框的空白区域是外边距。设置外边距会在元素外创建额外的“空白”。设置外边距的最简单的方法就是使用 margin 属性,这个属性接受任何长度单位、百分数值甚至负值。################CSS 外边距属性属性 描述margin 简写属性。在一个声明中设置所有外边距属性。margin-bottom 设置元素的下外边距。mar...

jQuery Grid入门指南(1)

上周需要把一个项目中的普通table改成使用jQuery插件形式的表格,找到了jqgrid这个插件,本以为找个demo,查查api就能解决,没想到还是费了一番的功夫,在这里记录总结一下。 本文实现的内容主要有:基础表格的绘制,实现分页功能,将jqgrid修改为响应式表格。 先贴一张表格样子图   jqgrid源码下载地址:https://github.co...

前端开发知识之前端移动端适配总结

meta标签到底做了什么事情做过移动端适配的小伙伴一定有遇到过这行代码: <meta name="viewport" content="width=device-width, initial-scale=1.0"> 但是,很多小伙伴只是感性的认识:噢,我加了这行代码,然后页面的宽度就会跟我的设备宽度一致。然而,这种理解是很片面的。那么,这句话的...