用css制作星级投票评分功能(2)
作者:greengnn 来源:蓝色理想 发布时间:2008-01-08 21:12:00
标签:评分,星级,css
第一个模型中忽视了半星级的情况和无初始的星级,下来我们就是要解决这个问题。
Step 1. 先看看效果|Check it in action
图1
Step 2: The XHTML
<ul class="star-rating">
<li class="current-rating">Currently 3.5/5 Stars.</li>
<li><a href="#" title="1 star out of 5" class="one-star">1</a></li>
<li><a href="#" title="2 stars out of 5" class="two-stars">2</a></li>
<li><a href="#" title="3 stars out of 5" class="three-stars">3</a></li>
<li><a href="#" title="4 stars out of 5" class="four-stars">4</a></li>
<li><a href="#" title="5 stars out of 5" class="five-stars">5</a></li>
</ul>
和第一个模型的结构相似,唯一不同的是:
<li class="current-rating">Currently 3.5/5 Stars.</li>
定义初始值
Step 3: The Star Image
我们制作一个有三个星的图片,第一个星是空值,第二个是要选择的值,第三个是真实的值。
图2
Step 4: The CSS, the Magic
.star-rating li.current-rating{
background: url(star_rating.gif) left bottom;
position: absolute;
height: 30px;
display: block;
text-indent: -9000px;
z-index: 1;
}
他定义了初始值,为了避免继承容器ul的相对定位,采用position: absolute;每个星的高度为height:30px;别的就是隐藏文本和定义对齐方式。
空值css
.star-rating{
…
background: url(star_rating.gif) top left repeat-x;
}
选择值css
.star-rating li a:hover{
background: url(star_rating.gif) left center;
…
}
初始值当然会随着选择变动,那么怎样实现它的变化呢?
<li class="current-rating" style="width:105px;">Currently 3.5/5 Stars.</li>
看了这段代码相信你就知道是什么原因了!那这个width是怎样计算的呢?
Average Rating|平均值: 3.5
Each Star Width|每个星的宽度: 30px;
Set width to|将宽度设为: 3.5 * 30 = 105px
下面欣赏一下这个新模型吧
* Example 1: 150 x 30 star rating system
* Example 2: 125 x 25 star rating system
* Example 3: 25 x 125 vertical star rating system


猜你喜欢
- 协程的特点1.该任务的业务代码主动要求切换,即主动让出执行权限2.发生了IO,导致执行阻塞(使用channel让协程阻塞)与线程本质的不同C
- 本文为大家分享了mysql 8.0.19 winx64安装教程,供大家参考,具体内容如下1. 下载mysql-8.0.19-winx641.
- Django实现内容缓存:1、内存缓存settings.py文件配置CACHES = { 'default':
- 如下所示:def prn_obj(obj): print '\n'.join(['%s:%s'
- 如果你在Flask中启动过子线程,然后在子线程中读写过g对象或者尝试从request对象中读取url参数,那么,你肯定对下面这个报错不陌生:
- 当感觉mysql性能出现问题时,通常会先看下当前mysql的执行状态,使用 show processlist 来查看,例如:其中state状
- SQLite Delete详解SQLite 的 DELETE 查询用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 查
- 这篇论坛文章(赛迪网技术社区)主要介绍了MySQL数据库主从复制的相关概念及设置方法,详细内容请大家参考下文:MySQL支持单向、异步复制,
- 前段时间前在网上看到一段面试题,要求如下:employee文件中记录了工号和姓名 cat employe
- 假设我们使用 Angular Universal 开发一个服务器端渲染的 Angular 应用,这个应用会消费一个第三方的 Restful
- 大概在Python2.7.xx以前,安装Python时环境变量是需要自己设的,所以自己做了一个批处理文件.bat来设置环境变量Path,通过
- 一个转换程序,简单的把DNA序列中的A转变成T,第一种情况没有使用私有变量。#!/bin/perl#下面是一段DNA序列 $DN
- mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库
- 今天看到的这篇文章, 让我对Chrome能够带来的影响,有了点新想法。Update: 发现我在跟别人讨论时,比直接写作文说得清楚一些,对这个
- 先来聊一聊Top K算法,具体内容如下应用场景: 搜索引
- 今天想用python做个demo,含两个子图的动态gif,代码如下:import matplotlib.pyplot as pltimpor
- 该算法实现对列表中大于某个阈值(比如level=5)的连续数据段的提取,具体效果如下:找出list里面大于5的连续数据段:list = [1
- 钱包基础概念广义上,钱包是一个应用程序,为用户提供交互界面。钱包控制用户访问权限、管理比特比地址及秘钥、跟踪余额、创建交易和签名交易狭义上,
- 相关知识点:#key-value#字典是无序的,因为他没有下标,通过key找info={ 'stu01':"liu
- Entry(输入框)组件通常用于获取用户的输入文本。何时使用 Entry 组件?Entry 组件仅允许用于输入一行文本,如果用于输入的字符串