原文:css两种动态显示星星等级的比较(一星、两星、三星、四星、五星)

以下是显示后的图片,相信在很多网站上都能看到这种效果,目前我知道两种实现方式

1、background-position加上一张图片

图片:http://www.brookstone.com/webassets/pwr/engine/images/stars.gif

 <!DOCTYPE html>
<html> <head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
<style>
.star{
height: 20px;
line-height: 20px;
width: 112px;
background-image: url('http://www.brookstone.com/webassets/pwr/engine/images/stars.gif');
background-position:0 -69px;
background-repeat:no-repeat;
} </style>
</head> <body>
<div class="star"></div> </body> </html>

这是最简单的background-position定位,不过如果还是觉得stars.gif比较大,可以用第二种方法,不过在使用第二种方法之前必须将stars.gif用photoshop裁剪下,裁剪成两个图片,没有金色星星(5颗灰色星星)的和5金色星的两张图片,其他各类星星的都舍去掉,当然我比较懒,下面的demo图片没有用工具裁剪,直接用的原stars.gif。

2、CSS clip 属性

浏览器支持

所有主流浏览器都支持 clip 属性。

clip 属性剪裁绝对定位元素。

clip::rect (top, right, bottom, left)

position:absolute 这个必须有

<!DOCTYPE html>
<html> <head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
<style> .star1{
margin:10px 0 0 0;
height: 20px;
line-height: 20px;
width: 112px;
background-image: url('http://www.brookstone.com/webassets/pwr/engine/images/stars.gif');
background-position:0 0;
}
.star1 .inner{
height: 20px;
line-height: 20px;
width: 112px;
background-image: url('http://www.brookstone.com/webassets/pwr/engine/images/stars.gif');
background-position:0 -230px;
position:absolute;
clip:rect(0px,61px,21px,0px);
}
</style>
</head> <body> <div class="star1">
<div class='inner'></div>
</div>
</body> </html>

这个用rect裁剪的好处是即使你想要1.2颗星星也是可以的,只需要改下clicp的rect第二个参数就行了,61px改为27.6px,clip:rect(0px,27.6px,21px,0px);

计算方式 一个星星23px,1.2颗星星:23+23/10*2=27.6,显示效果:

对比第一种,stars.gif这个图片得不断添加各类值得星星,好处显而易见,第二种灵活图片小,减少传输开销。

备注: .star1样式里面的图片应该是5颗灰色星星,.star1 .inner里的图片应该是5颗金色星星

css两种动态显示星星等级的比较(一星、两星、三星、四星、五星)的更多相关文章

  1. Swift基础之两种选择星星的评价样式并获取星星的索引值

    想练练手,所以封装了一个两种选择星星的评价样式的Demo,并且可以获取到点击的星星的索引值,方便记录值,上传数据时使用 首先创建View类,设计初始化方法,并且用到了枚举类型和代理方法 方式一:默认的 ...

  2. SNMP安全配置的两种方法(也可同一时候兼顾配置两种方法)

    方法一(最简单安装): 安装 Net-SNMP CentOS及其他RedHat系列产品提供了net-snmp的二进制包.我们能够直接从源里安装. shell> yum install net-s ...

  3. Android中手机录屏并转换GIF的两种方式

    之前在博文中为了更好的给大家演示APP的实现效果,本人了解学习了几种给手机录屏的方法,今天就给大家介绍两种我个人用的比较舒服的两种方法: (1)配置adb环境后,使用cmd命令将手机界面操作演示存为视 ...

  4. Android中BroadcastReceiver的两种注册方式(静态和动态)详解

    今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来 ...

  5. Java中HashMap遍历的两种方式

    Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...

  6. GET 和 POST 两种方式来完成Http接口

    程序使用 HTTP 协议和服务器交互主要是进行数据的提交,通常数据的提交是通过 GET 和 POST 两种方式来完成,下面对这两种方式(.net c#)进行一下说明: 1. GET 方式. GET 方 ...

  7. web项目docker化的两种方法

    标题所讲的两种方法其实就是创建docker镜像的两种方法 第一种:启动镜像后进入容器中操作,将需要的软件或者项目移动到容器中,安装或者部署,然后退出即可 第二种:编写dockerfile,将需要的镜像 ...

  8. java实现同步的两种方式

    同步是多线程中的重要概念.同步的使用可以保证在多线程运行的环境中,程序不会产生设计之外的错误结果.同步的实现方式有两种,同步方法和同步块,这两种方式都要用到synchronized关键字. 给一个方法 ...

  9. js实现两种实用的排序算法——冒泡、快速排序

      分类:js (4443) (0) 零:数据准备,给定数组arr=[2,5,4,1,7,3,8,6,9,0]; 一:冒牌排序 1思想:冒泡排序思想:每一次对比相邻两个数据的大小,小的排在前面,如果前 ...

随机推荐

  1. crm操作安全字段

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Xrm.Sdk.Messages; /// <summary> ...

  2. Codeforces 61E Enemy is weak 乞讨i&lt;j&lt;k &amp;&amp; a[i]&gt;a[j]&gt;a[k] 对数的 树阵

    主题链接:点击打开链接 意大利正在寻求称号 i<j<k && a[i]>a[j]>a[k] 的对数 假设仅仅有2元组那就是求逆序数的做法 三元组的话就用一个树状 ...

  3. hdoj 1395 2^x mod n = 1 【暴力】

    策略 : 观察可知,1 或者是能被2整除的数都不会求余等于1, 仅仅须要推断一下是不是除1之外的奇数,在依次查找2^x(mod(n)) ? = 1就能够了 难点:假设每次都是在原来的基础上×2 再推断 ...

  4. ThreadSafeClientConnManager的20个例子

    Java Code Examples for org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager The following are ...

  5. Android之Http通信——3.Android HTTP请求方式:HttpURLConnection

    3.Android HTTP请求方式之HttpURLConnection 引言: 好了,前两节我们已经对HTTP协议进行了学习.相信看完前两节的朋友对HTTP协议相比之前 应该更加熟悉吧.好吧.学了要 ...

  6. SDL2源码分析8:视频显示总结

    ===================================================== SDL源码分析系列文章列表: SDL2源码分析1:初始化(SDL_Init()) SDL2源 ...

  7. WPF遮蔽层的实现

    在一些项目中,难免会有耗时的加载,如果加载时没有提示,给人一种假死的感觉,很不友好,那么现在福利来啦,WPF版的模态窗体,先上效果图 实际效果指针是转动的,话不多说,一大批干货来袭 XMAL的代码 W ...

  8. jQuery的理论基础

    概述 jQuery是用JavaScript语言编写的函数库,我们用时,可以直接调用jQuery中相应的函数,对于JavaScript的理解,前面的博客已经介绍过了,在这里只说一下函数的作用,也可以说为 ...

  9. SQL声明发育异常导致项目错误

    1.错误叙述性说明 严重:Exception occurred during processing request:Statement Callback;SQL[   ];OALL8处于不一致状态; ...

  10. UVA - 12232 Exclusive-OR (并查集扩展偏离向量)

    Description You are not given n non-negative integersX0,X1,..., Xn-1 less than220, but they do exist ...